shave two bytes

This commit is contained in:
Peter Ferrie 2021-11-24 17:11:33 -08:00
parent 88e749ea79
commit a557787f5f
2 changed files with 9 additions and 9 deletions

Binary file not shown.

View file

@ -229,23 +229,23 @@ Apply: test %ax,%ax # Apply(fn:ax,x:si:a:dx):ax
mov (%bx,%si),%si # si = Cdr(x) mov (%bx,%si),%si # si = Cdr(x)
lodsw # si = Cadr(x) lodsw # si = Cadr(x)
je Cons je Cons
.isEq: cmp %di,%ax # we know for certain it's eq .isEq: xor %di,%ax # we know for certain it's eq
jne .retF jne .retF
.retT: mov $kT,%ax .retT: mov $kT,%al
ret ret
Cadr: mov (%bx,%di),%di # contents of decrement register
.byte 0x3C # cmp §scasw,%al (nop next byte)
Cdr: scasw # increments our data index by 2
Car: mov (%di),%ax # contents of address register!!
2: ret
Assoc: mov %dx,%si # Assoc(x:ax,y:dx):ax Assoc: mov %dx,%si # Assoc(x:ax,y:dx):ax
1: mov (%si),%di 1: mov (%si),%di
mov (%bx,%si),%si mov (%bx,%si),%si
scasw scasw
jne 1b jne 1b
jmp Car .byte 0xF6 # test §mov/cmp (nop next bytes)
Cadr: mov (%bx,%di),%di # contents of decrement register
.byte 0x3C # cmp §scasw,%al (nop next byte)
Cdr: scasw # increments our data index by 2
Car: mov (%di),%ax # contents of address register!!
2: ret
1: mov (%bx,%di),%di # di = Cdr(c) 1: mov (%bx,%di),%di # di = Cdr(c)
Evcon: push %di # save c Evcon: push %di # save c