1
0
mirror of https://github.com/cc65/cc65.git synced 2024-10-16 11:23:57 +00:00
cc65/test/float/softfloat/cc65wrapper.s
2022-09-13 23:26:09 +02:00

107 lines
1.7 KiB
ArmAsm

.import _int32_to_float32
; 16bit signed -> float
.export axfloat
axfloat:
; FIXME
jmp _int32_to_float32
; 16bit unsigned -> float
.export axufloat
axufloat:
; FIXME
jmp _int32_to_float32
; 32bit signed -> float
.export eaxfloat
eaxfloat:
; FIXME
jmp _int32_to_float32
; 32bit unsigned -> float
.export eaxufloat
eaxufloat:
; FIXME
jmp _int32_to_float32
.import _float32_to_int32
; float -> 16bit int
.export feaxint
feaxint:
; FIXME
jmp _float32_to_int32
; float -> 32bit int
.export feaxlong
feaxlong:
jmp _float32_to_int32
.export fbnegeax
fbnegeax:
.import _float32_add
.import _float32_sub
.import _float32_mul
.import _float32_div
.export ftosaddeax
ftosaddeax:
jmp _float32_add
.export ftossubeax
ftossubeax:
jmp _float32_sub
.export ftosmuleax
ftosmuleax:
jmp _float32_mul
.export ftosdiveax
ftosdiveax:
jmp _float32_div
.import _float32_eq
.import _float32_le
.import _float32_lt
; test for equal
.export ftoseqeax
ftoseqeax:
; arg0: a/x/sreg/sreg+1
; arg1: (sp),y (y=0..3)
jmp _float32_eq
; test for not equal
.export ftosneeax
ftosneeax:
; arg0: a/x/sreg/sreg+1
; arg1: (sp),y (y=0..3)
jsr _float32_eq
eor #1
rts
; Test for less than or equal to
.export ftosleeax
ftosleeax:
jmp _float32_le
.export ftosgteax
ftosgteax:
jsr _float32_le
eor #1
rts
; Test for less than
.export ftoslteax
ftoslteax:
jmp _float32_lt
; Test for "not less than" -> "equal or greater than"
; Test for greater than or equal to
.export ftosgeeax
ftosgeeax:
jsr _float32_lt
eor #1
rts