Most everything works, but there's one small bug with the execution
involving jumps - still have to figure that one out.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
.string, .zstring, .u64, .u32, .u16, .u8 are used before an ImmValue to
determine how the memory should be laid out for that value.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
These explicitly allow usage of storeimm32 and storeimm64 in the
assembler syntax. It will also warn you if you try to store a value
that's too large using the storeimm32 instruction
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
Major changes inlude:
* Bit the bullet and now instructions have their length hard-coded
* Move from_utf8 object parsing to be done by their objects (instead of
a Parser god object)
* A list of AST sections are assembled into an Object using the new
vm::obj::assemble module.
* Changed the object layout some in the spec, and adjusted code to match
this.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>