.include "asm/macros.inc" .include "global.inc" .extern __fadd_start .text arm_func_start _frsb _frsb: ; 0x020EB7A4 eor r0, r0, r1 eor r1, r0, r1 eor r0, r0, r1 arm_func_start _fsub _fsub: ; 0x020EB7B0 eors r2, r0, r1 eormi r1, r1, #0x80000000 bmi __fadd_start .global __fsub_start __fsub_start: subs r12, r0, r1 eorcc r12, r12, #0x80000000 subcc r0, r0, r12 addcc r1, r1, r12 mov r2, #0x80000000 mov r3, r0, lsr #0x17 orr r0, r2, r0, lsl #0x8 ands r12, r3, #0xff cmpne r12, #0xff beq _020EB8D8 mov r12, r1, lsr #0x17 orr r1, r2, r1, lsl #0x8 ands r2, r12, #0xff beq _020EB918 _020EB7F4: subs r12, r3, r12 beq _020EB83C rsb r2, r12, #0x20 movs r2, r1, lsl r2 mov r1, r1, lsr r12 orrne r1, r1, #0x1 subs r0, r0, r1 bpl _020EB880 ands r1, r0, #0xff add r0, r0, r0 mov r0, r0, lsr #0x9 orr r0, r0, r3, lsl #0x17 tst r1, #0x80 bxeq lr ands r1, r1, #0x7f andeqs r1, r0, #0x1 addne r0, r0, #0x1 bx lr _020EB83C: subs r0, r0, r1 beq _020EB9E4 mov r2, r3, lsl #0x17 and r2, r2, #0x80000000 bic r3, r3, #0x100 clz r12, r0 movs r0, r0, lsl r12 sub r3, r3, r12 cmp r3, #0x0 bgt _020EB870 rsb r3, r3, #0x9 orr r0, r2, r0, lsr r3 bx lr _020EB870: add r0, r0, r0 orr r0, r2, r0, lsr #0x9 orr r0, r0, r3, lsl #0x17 bx lr _020EB880: mov r2, r3, lsl #0x17 and r2, r2, #0x80000000 bic r3, r3, #0x100 clz r12, r0 movs r0, r0, lsl r12 sub r3, r3, r12 cmp r3, #0x0 bgt _020EB8AC rsb r3, r3, #0x9 orr r0, r2, r0, lsr r3 bx lr _020EB8AC: ands r1, r0, #0xff add r0, r0, r0 orr r0, r2, r0, lsr #0x9 orr r0, r0, r3, lsl #0x17 bxeq lr tst r1, #0x80 bxeq lr ands r1, r1, #0x7f andeqs r1, r0, #0x1 addne r0, r0, #0x1 bx lr _020EB8D8: cmp r3, #0x100 movge r2, #0x80000000 movlt r2, #0x0 ands r3, r3, #0xff beq _020EB940 movs r0, r0, lsl #0x1 bne _020EBA18 mov r12, r1, lsr #0x17 mov r1, r1, lsl #0x9 ands r12, r12, #0xff beq _020EBA0C cmp r12, #0xff blt _020EBA0C cmp r1, #0x0 beq _020EBA20 b _020EBA18 _020EB918: cmp r12, #0x100 movge r2, #0x80000000 movlt r2, #0x0 and r3, r3, #0xff ands r12, r12, #0xff beq _020EB9A8 _020EB930: eor r2, r2, #0x80000000 movs r1, r1, lsl #0x1 bne _020EBA18 b _020EBA0C _020EB940: movs r0, r0, lsl #0x1 beq _020EB978 mov r0, r0, lsr #0x1 mov r3, #0x1 mov r12, r1, lsr #0x17 mov r1, r1, lsl #0x8 ands r12, r12, #0xff beq _020EB9A8 cmp r12, #0xff beq _020EB930 orr r1, r1, #0x80000000 orr r3, r3, r2, lsr #0x17 orr r12, r12, r2, lsr #0x17 b _020EB7F4 _020EB978: mov r3, r1, lsr #0x17 mov r0, r1, lsl #0x9 ands r2, r3, #0xff beq _020EB99C cmp r2, #0xff blt _020EB9C4 cmp r0, #0x0 bne _020EBA04 b _020EBA0C _020EB99C: cmp r0, #0x0 beq _020EB9E4 b _020EB9C4 _020EB9A8: movs r1, r1, lsl #0x1 beq _020EB9CC mov r1, r1, lsr #0x1 mov r12, #0x1 orr r12, r12, r2, lsr #0x17 orr r3, r3, r2, lsr #0x17 b _020EB7F4 _020EB9C4: mov r0, r1 bx lr _020EB9CC: cmp r0, #0x0 subges r3, r3, #0x1 add r0, r0, r0 orr r0, r2, r0, lsr #0x9 orr r0, r0, r3, lsl #0x17 bx lr _020EB9E4: mov r0, #0x0 bx lr _020EB9EC: ; 0x020EB9EC cmp r0, #0x0 subges r3, r3, #0x1 add r0, r0, r0 mov r0, r0, lsr #0x9 orr r0, r0, r3, lsl #0x17 bx lr _020EBA04: mvn r0, #0x80000000 bx lr _020EBA0C: mov r0, #0xff000000 orr r0, r2, r0, lsr #0x1 bx lr _020EBA18: mvn r0, #0x80000000 bx lr _020EBA20: mvn r0, #0x80000000 bx lr