You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's a couple cases we can't handle, and we don't handle any of them particularly well:
Some opcodes directly pop values off the stack when they read [-1] through [-100], regardless of the exact value. To my knowledge (someone please verify), this is the only kind of opcode from TH10-13. Others read an offset from the current stack pointer for [-1] through [-100], then subtract th10_instr_t->zero from the stack pointer.
For the second kind of opcode, instruction([-1], [-1]) will need to be handled somehow. While the transformation from, say, 1 + 2; ins_XXX([-1], [-1]) to ins_XXX(1 + 2, 1 + 2) will not change the semantics of ECL code, it will make the output and input no longer bit-for-but identical.
Currently, the handling covers this corner case poorly, and neither kind of opcode perfectly.
The text was updated successfully, but these errors were encountered:
Lymia
changed the title
Resolution of [-1], [-2], etc in thecl10.c's expression resolution is screwed up.
Properly handle resolution of [-1], [-2], etc in thecl10.c's expressions.
Aug 18, 2017
There's a couple cases we can't handle, and we don't handle any of them particularly well:
th10_instr_t->zero
from the stack pointer.1 + 2; ins_XXX([-1], [-1])
toins_XXX(1 + 2, 1 + 2)
will not change the semantics of ECL code, it will make the output and input no longer bit-for-but identical.Currently, the handling covers this corner case poorly, and neither kind of opcode perfectly.
The text was updated successfully, but these errors were encountered: