head_addr
This commit is contained in:
parent
c3e44e2bf8
commit
80d127788e
|
|
@ -50,7 +50,8 @@ label(G),
|
|||
store_word(2, 0, 0),
|
||||
do_offset(H),
|
||||
label(I),
|
||||
do_offset(I),label(J),
|
||||
do_offset(I),
|
||||
label(J),
|
||||
symbol(J),
|
||||
lsl_imm(6, 2, 2),
|
||||
asr_imm(6, 6, 17),
|
||||
|
|
|
|||
|
|
@ -109,12 +109,8 @@ Mark II
|
|||
chain_link(TOS, TEMP3),
|
||||
jump(Done), % Rely on mainloop::Done to write TOS to RAM.
|
||||
|
||||
definition(Dup)
|
||||
]),[
|
||||
% TermAddr := TOS << 2 >> 17
|
||||
lsl_imm(TermAddr, TOS, 2),
|
||||
asr_imm(TermAddr, TermAddr, 17)
|
||||
],⟐([
|
||||
definition(Dup),
|
||||
head_addr(TOS, TermAddr),
|
||||
jump(PUSH)
|
||||
]),[
|
||||
label(Expression),
|
||||
|
|
@ -187,6 +183,8 @@ language.
|
|||
|
||||
⟐(definition(Name)) --> [label(Name), symbol(Name)].
|
||||
|
||||
⟐(head_addr(Pair, HeadAddr)) --> [lsl_imm(HeadAddr, Pair, 2), asr_imm(HeadAddr, HeadAddr, 17)].
|
||||
|
||||
|
||||
do :-
|
||||
compile_program(Binary),
|
||||
|
|
|
|||
Loading…
Reference in New Issue