diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | README.md | 29 | ||||
| -rwxr-xr-x | example/exec | bin | 93744 -> 0 bytes | |||
| -rw-r--r-- | rules.py | 4 |
4 files changed, 4 insertions, 30 deletions
@@ -1,2 +1,3 @@ gen/* *.o +example/exec @@ -1,29 +1,6 @@ # Byte code generator -Separate project for now, but essentially create a program that takes some input -(for example) -``` -addr(_GGG_) -{ - R0 = R1 + R2; - return NEXT_INSN; -} +A relatively simple script that generates pretty fast bytecode systems. +Relies on some non-standard C, but should in theory be completely portable. -addi(_GGi_) -{ - R0 = R1 + IMM; - return NEXT_INSN; -} - -beqi(RGi__) -{ - if (R0 == IMM) - return BRANCH; - - return NEXT_INSN; -} -``` - -and generates implementations with registers fixed and some kind of muxing -compilation functions that selects the correct implementation from some runtime -`compile_addr(1, 2, 3);`. +See `example` for how to use. diff --git a/example/exec b/example/exec Binary files differdeleted file mode 100755 index 2189325..0000000 --- a/example/exec +++ /dev/null diff --git a/rules.py b/rules.py deleted file mode 100644 index b0aabbf..0000000 --- a/rules.py +++ /dev/null @@ -1,4 +0,0 @@ -g = BCGen(r = 7, f = 6, head='gbreg_t t = 0;') -g.rule('addr', '_RRR__', 'R0 = R1 + R2;') -g.rule('addr_f', '_FFF__', 'F0 = F1 + F2;') -g.rule('bltr', 'rRR__I', 'if (R0 < R1) JUMP(IMM);') |
