Closed patricksurry closed 3 months ago
this is the first part of splitting #78
I went back and forth over whether or not to show the string data. I ultimately decided not to, because the DUMP at the top already shows it (when using SEE) and you can take the address and length and TYPE it yourself if you want to know. If you think it's useful to print it, you're welcome to add that and it's easy to limit the length if the string is too long.
Do let me know when you have things at a point where you think a merge makes sense. Also, you don't need to worry about fixing up results.txt - in fact, I'll recommend that you run the tests, but not include results.txt in your PRs, as they will likely break when I merge other PRs.
i'm happy to merge this now and make a separate ticket for improving the disassembly of the non-native double. it should be relatively rare occurrence with default nc-limit anyway.
then i'll untangle the rest of #78 for you to look at.
Adds support for inline literals (and two-literals) which are much faster than the
jsr
+ payload version. Inline literals require 6 bytes for byte-sized values and 8 bytes otherwise. Doubles take twice the space so the defaultnc-limit
of 20 inlines both single and double values.When 2literal is non-native it now shares sliteral_runtime using
jsr ...
with a four byte payload rather than twojsr
each with two byte payload, which makes it more compact and almost twice as fast.One minor issue is that disasm now shows both non-native string literals and doubles as SLITERAL (see below). It might be possible to use the presence/absence of the preceding
jmp over-string
to decide whether to show SLITERAL or DLITERAL, and could then used.
to show the constant instead ofu. .
like SLITERAL does. I was also wondering whether thejmp over-string
in diasm should show the first 48ish characters of the string value alongside. wdyt?