Commit Graph
7 Commits
Author SHA1 Message Date
Nunuhara Cabbage 1bf8eb3897 aindump: generic macro matcher
Implement a generic system for matching and emitting macros.
2020-05-03 15:23:34 -07:00
Nunuhara Cabbage 34950cda38 aindump/ainedit: .LOCALASSIGN2 macro
This macro represents the instruction sequence to assign a value on the
stack to a local variable.
2020-05-03 09:20:42 -07:00
Nunuhara Cabbage 09ab45d6ea aindump/ainedit: .PUSHVMETHOD macro
This macro represents the instruction sequence to load a virtual method
number from the currect struct page's vtable onto the stack.
2020-05-03 08:49:03 -07:00
Nunuhara Cabbage 6694eeb683 aindump/ainedit: add POP to *ASSIGN macros
Add the final POP after the ASSIGN to the LOCALASSIGN, GLOBALASSIGN and
STRUCTASSIGN macros. This makes the macros stack-clean.
2020-05-01 16:48:14 -07:00
Nunuhara Cabbage 094ce848b9 aindump/ainedit: STRUCTREF, etc. macros
Same idea as LOCALREF/GLOBALREF, etc. except for accessing struct
members inside of a member function. This is a bit trickier since it
requires knowing which functions belong to which structs, which isn't
directly encoded in the AIN format.
2020-05-01 16:31:12 -07:00
Nunuhara Cabbage 38edfe8a98 aindump/ainedit: more macros
.LOCALINC
.LOCALDEC
.LOCALASSIGN
.LOCALDELETE
.LOCALCREATE
.GLOBALINC
.GLOBALDEC
.GLOBALASSIGN
2020-04-27 22:34:23 -07:00
Nunuhara Cabbage 166854f2c3 aindump/ainedit: .LOCALREF/.GLOBALREF macros
Use macros for some common instruction sequences. E.g.

    PUSHLOCALPAGE
    PUSH <varno>
    REF

becomes,

    .LOCALREF <varname>
2020-04-26 20:58:49 -07:00