__asm__ |
( |
".section .text\n\t"".global ___modsi3\n""___modsi3:\n\t""push r4\n\t""push r5\n\t""push r6\n\t""push r0\n\t""mov.w |
r1, |
|
|
r6\n\t""mov.w |
r0, |
|
|
r5\n\t""mov.w |
r3, |
|
|
r4\n\t""mov.w |
r2, |
|
|
r3\n\t""jsr @@88\n\t""mov.w |
r4, |
|
|
r1\n\t""mov.w |
r3, |
|
|
r0\n\t""#negate remainder if numerator was less than zero\n\t""btst# |
0x7, |
|
|
@r7\n\t""beq skipnegate\n\t""not.b r0l\n\t""not.b r0h\n\t""not.b r1l\n\t""not.b r1h\n\t""add.b# |
0x1, |
|
|
r1l\n\t""addx# |
0x0, |
|
|
r1h\n\t""addx# |
0x0, |
|
|
r0l\n\t""addx# |
0x0, |
|
|
r0h\n""skipnegate:\n\t""adds# |
0x2, |
|
|
r7\n\t""pop r6\n\t""pop r5\n\t""pop r4\n\t""rts" |
|
|
) |
|
|