diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-02 20:31:55 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-02 20:31:55 +0000 |
commit | 4990d93a1c333c032e5ee0f1fc4aa3a02a7d41fc (patch) | |
tree | 39a1d0bf5c89de639b45c779cc0a3bbeb09d2a87 /asm/lexer.h | |
parent | d5e311c9d44793d269e9b8ee5e8c0fa7a1a25a50 (diff) | |
download | ovm-4990d93a1c333c032e5ee0f1fc4aa3a02a7d41fc.tar.gz ovm-4990d93a1c333c032e5ee0f1fc4aa3a02a7d41fc.tar.bz2 ovm-4990d93a1c333c032e5ee0f1fc4aa3a02a7d41fc.zip |
Created a preprocessing unit presult_t and a function to process them
Essentially a presult_t contains one of these:
1) A label construction, which stores the label symbol into
`label` (PRES_LABEL)
2) An instruction that calls upon a label, storing the instruction
in `instruction` and the label name in `label` (PRES_LABEL_ADDRESS)
3) An instruction that uses a relative address offset, storing the
instruction in `instruction` and the offset wanted into
`relative_address` (PRES_RELATIVE_ADDRESS)
4) An instruction that requires no further processing, storing the
instruction into `instruction` (PRES_COMPLETE_INSTRUCTION)
In the processing stage, we resolve all calls by iterating one by one
and maintaining an absolute instruction address. Pretty nice, lots
more machinery involved in parsing now.
Diffstat (limited to 'asm/lexer.h')
0 files changed, 0 insertions, 0 deletions