assets/developer-notes/stephanie-gawroriski/2019/06/21.mkd
# 2019/06/21
## 08:37
I should have assembly methods for long building and unbuilding since it could
be sped up by the compiler. It would also be simpler to merge two values
together as well.
## 08:48
And on top of that, I am going to make it so that all the math operations
return their correct type so I do not have to use the return value hacking.
I think this will be much better. It could also mean software math is usable
for Java SE and SpringCoat.
## 11:11
Okay so it seems invoking long values is wrong?
## 11:21
Okay so the memory read/write instructions are okay.
## 11:41
Okay so `LRETURN` is not returning two values, it is just returning one and
the debug point says what was popped from the stack is not a long...
## 11:42
Oh yeah because I just pop the one and I check if it is wide, it should be
top.
## 16:23
After bug fixes and working on things, will be heading to getting the launcher
or at least the hello demo working properly. Will be interesting to see how
this goes!
## 18:55
Okay so I think all memory needs to be tagged or similar. I could use the
upper 8-bits of the size for the tag information. I think this will be very
important. I can have some extra bits, like if something is an object or
otherwise. It would limit allocations to 16MiB but this is a mobile embedded
system so that is not too bad. I think that would be the best, just so I can
determine say which task owns a block (so when it is closed, everything can
be quickly cleaned out) but also to know if things are objects or otherwise.
## 20:57
Okay, so I have tagging now which should help with initializing classes and
such for other tasks when they are booted.