The i combinator.

This commit is contained in:
Simon Forman
2019-11-12 08:37:20 -08:00
parent 80d127788e
commit afea54bf08
4 changed files with 232 additions and 14 deletions
+84 -2
View File
@@ -5,7 +5,7 @@ label(A),
mov_imm(0, 0),
store_word(0, 0, 0),
mov_imm(0, 4096),
mov_imm(1, S),
mov_imm(1, I1),
mov_imm(2, 0),
mov_imm(3, 0),
store_word(2, 0, 0),
@@ -103,4 +103,86 @@ lsl_imm(5, 2, 2),
asr_imm(5, 5, 17),
do_offset(D),
label(S),
expr_cell(R, 0)].
symbol(S),
lsl_imm(6, 2, 2),
asr_imm(6, 6, 17),
eq_offset(T),
add(6, 6, 0),
label(T),
lsl_imm(2, 2, 17),
asr_imm(2, 2, 17),
eq_offset(U),
add(2, 2, 0),
label(U),
sub_imm(6, 6, 0),
eq_offset(D1),
sub_imm(10, 0, 4),
mov_imm(9, 4),
label(B1),
load_word(3, 6, 0),
lsl_imm(7, 3, 2),
asr_imm(7, 7, 17),
eq_offset(V),
add(7, 7, 6),
label(V),
lsl_imm(8, 3, 17),
asr_imm(8, 8, 17),
eq_offset(W),
add(8, 8, 6),
label(W),
mov(6, 8),
sub_imm(0, 0, 4),
sub_imm(8, 8, 0),
eq_offset(X),
lsl_imm(7, 7, 15),
ior(7, 7, 9),
store_word(7, 0, 0),
do_offset(A1),
label(X),
sub_imm(7, 7, 0),
eq_offset(Y),
sub(7, 7, 0),
and_imm(7, 7, 32767),
label(Y),
sub_imm(1, 1, 0),
eq_offset(Z),
sub(1, 1, 0),
and_imm(1, 1, 32767),
label(Z),
lsl_imm(7, 7, 15),
ior(7, 7, 1),
store_word(7, 0, 0),
label(A1),
sub_imm(6, 6, 0),
eq_offset(C1),
do_offset(B1),
label(C1),
mov(1, 10),
label(D1),
load_word(7, 2, 0),
lsl_imm(6, 7, 2),
asr_imm(6, 6, 17),
eq_offset(E1),
add(6, 6, 2),
label(E1),
lsl_imm(7, 7, 17),
asr_imm(7, 7, 17),
eq_offset(F1),
add(7, 7, 2),
label(F1),
sub_imm(0, 0, 4),
sub_imm(6, 6, 0),
eq_offset(G1),
sub(6, 6, 0),
and_imm(6, 6, 32767),
label(G1),
sub_imm(7, 7, 0),
eq_offset(H1),
sub(7, 7, 0),
and_imm(7, 7, 32767),
label(H1),
lsl_imm(6, 6, 15),
ior(6, 6, 7),
store_word(6, 0, 0),
label(I1),
expr_cell(R, 0)].