d63a359a49
unsigned comparisons is surprisingly not that useful due to marshalling overhead; it's only four bytes to do inline (plus jc), or six for a constant. Also add some useful top optimisations. Star Trek goes from 39890 to 39450 bytes.
19 lines
286 B
ArmAsm
19 lines
286 B
ArmAsm
.sect .text
|
|
.sect .rom
|
|
.sect .data
|
|
.sect .bss
|
|
.sect .text
|
|
|
|
! Does a tristate unsigned comparison of hl <> de.
|
|
! Returns m flag if hl < de.
|
|
! Returns p flag if hl >= de.
|
|
! This doesn't set z coherently.
|
|
|
|
.define .cmpu_mag
|
|
.cmpu_mag:
|
|
mov a, e
|
|
sub l
|
|
mov a, d
|
|
sbb h
|
|
ret
|