| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It may superficially seem like there's a simpler approach:
- emit '3/mod' or '0/mod' depending on whether the character is '%' or '*'
- increment the start of word-slice
- look up the register and emit the appropriate /rm32
But that won't work for 1/mod or 2/mod. We're doing a little bit of
upfront planning.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Requires a change to the C++ translator: support string literals in all
segments, not just the code segment.
(The self-hosted translator already had this.)
|
|
|
|
|
| |
First step to cleaning up `desugar-register`: extract the common '%' to
register literals.
|
|
|
|
|
| |
We're no longer just emitting the register code. We emit all arguments
with appropriate metadata.
|
| |
|
|
|
|
|
|
|
|
|
| |
Model it on `dquotes` rather than `pack`, since it needs almost zero
state across words.
Manual testing:
$ echo 'ab %eax' |subx run apps/desugar
ab 0
|
|
|