// SIZE: 22 / 14 * 8 bytes
//
gm107_div_u32:
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
flo u32 $r2 $r1
lop xor 1 $r2 $r2 0x1f
mov $r3 0x1 0xf
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
shl $r2 $r3 $r2
i2i u32 u32 $r1 neg $r1
imul u32 u32 $r3 $r1 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imad u32 u32 hi $r2 $r2 $r3 $r2
imul u32 u32 $r3 $r1 $r2
imad u32 u32 hi $r2 $r2 $r3 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imul u32 u32 $r3 $r1 $r2
imad u32 u32 hi $r2 $r2 $r3 $r2
imul u32 u32 $r3 $r1 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imad u32 u32 hi $r2 $r2 $r3 $r2
imul u32 u32 $r3 $r1 $r2
imad u32 u32 hi $r2 $r2 $r3 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
mov $r3 $r0 0xf
imul u32 u32 hi $r0 $r0 $r2
i2i u32 u32 $r2 neg $r1
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imad u32 u32 $r1 $r1 $r0 $r3
isetp ge u32 and $p0 1 $r1 $r2 1
$p0 iadd $r1 $r1 neg $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
$p0 iadd $r0 $r0 0x1
$p0 isetp ge u32 and $p0 1 $r1 $r2 1
$p0 iadd $r1 $r1 neg $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
$p0 iadd $r0 $r0 0x1
ret
nop 0
// CLOBBER: $r2 - $r3, $p0 - $p3
//
gm107_div_s32:
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
isetp lt and $p2 0x1 $r0 0 1
isetp lt xor $p3 1 $r1 0 $p2
i2i s32 s32 $r0 abs $r0
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
i2i s32 s32 $r1 abs $r1
flo u32 $r2 $r1
lop xor 1 $r2 $r2 0x1f
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
mov $r3 0x1 0xf
shl $r2 $r3 $r2
i2i u32 u32 $r1 neg $r1
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imul u32 u32 $r3 $r1 $r2
imad u32 u32 hi $r2 $r2 $r3 $r2
imul u32 u32 $r3 $r1 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imad u32 u32 hi $r2 $r2 $r3 $r2
imul u32 u32 $r3 $r1 $r2
imad u32 u32 hi $r2 $r2 $r3 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imul u32 u32 $r3 $r1 $r2
imad u32 u32 hi $r2 $r2 $r3 $r2
imul u32 u32 $r3 $r1 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
imad u32 u32 hi $r2 $r2 $r3 $r2
mov $r3 $r0 0xf
imul u32 u32 hi $r0 $r0 $r2
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
i2i u32 u32 $r2 neg $r1
imad u32 u32 $r1 $r1 $r0 $r3
isetp ge u32 and $p0 1 $r1 $r2 1
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
$p0 iadd $r1 $r1 neg $r2
$p0 iadd $r0 $r0 0x1
$p0 isetp ge u32 and $p0 1 $r1 $r2 1
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
$p0 iadd $r1 $r1 neg $r2
$p0 iadd $r0 $r0 0x1
$p3 i2i s32 s32 $r0 neg $r0
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
$p2 i2i s32 s32 $r1 neg $r1
ret
nop 0
// STUB
gm107_rcp_f64:
gm107_rsq_f64:
- sched 0x7e0 0x7e0 0x7e0
+ sched (st 0x0) (st 0x0) (st 0x0)
ret
nop 0
nop 0
};
static const uint32_t code_gm107[] =
{
- 0xfc0007e0, 0x001f8000, /* sched 0x7e0 0x7e0 0x7e0 */
+ 0xfc0007e0, 0x001f8000, /* sched (st 0x0) (st 0x0) (st 0x0) */
0x0807ff04, 0xefd8ff80, /* ld b64 $r4 a[0x80] 0x0 */
0x0907ff00, 0xefd97f80, /* ld b96 $r0 a[0x90] 0x0 */
0x0707ff04, 0xeff0ff80, /* st b64 a[0x70] $r4 0x0 */
- 0xfc0007e0, 0x00000000, /* sched 0x7e0 0x7e0 0x0 */
+ 0xfc0007e0, 0x00000000, /* sched (st 0x0) (st 0x0) (st 0x0) */
0x0807ff00, 0xeff17f80, /* st b96 a[0x80] $r0 0x0 */
0x0007000f, 0xe3000000, /* exit */
};