Closed finesden33 closed 7 months ago
This is expected behavior. The s addi $s0, $t0, 0xffff
instruction doesn't exist in native MIPS bitcode. The immediate for addi is signed, so an immediate value of 0xffff
would be equivalent to addi $s0, $t0, -1
(e.g. the instruction would subtract one instead of adding 0xffff
).
Saturn knows that you probably don't want to subtract here. Instead, it will generate two instructions (a load immediate equivalent and an addi
) so your intent is expressed properly- a secret pseudo-instruction! That's why multiple instructions are emitted here. You can see the exact instructions it emitted by hitting File -> Assemble Elf.
Let me know if you have any questions 👍
This is the version I was using, and I did File->Export Hex Regions with default settings, it creates an empty folder with nothing in it, and there's nothing shown in the console: but when I check the CONTINUOUS EXPORT, then it can create the file I want but with no folder.
This should be fixed in v0.1.8 👍
Going to close this with the release of v0.1.8.
for example, .text addi $s0, $0, 0x1234 addi $t0, $0, 0x0c00 addi $t0, $t0, 0x0001 addi $t0, $t0, 0x0001 addi $t0, $t0, 0x0001 addi $s0, $t0, 0xffff addi $t1, $0, 0xffff addi $t1, $t1, 0xffff
exports to this (with HEXV3 and 32 bit little-endian configurations):
v3.0 hex words plain 20101234 20080c00 21080001 21080001 21080001 3401ffff 01018020 3401ffff 00014820 3401ffff 01214820