Decompile func0f13c574
This commit is contained in:
parent
63554e92fb
commit
59ddb472b7
|
|
@ -69,159 +69,48 @@ void func0f13c54c(void)
|
|||
bbufIncIndex1();
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f13c574
|
||||
/* f13c574: 3c014100 */ lui $at,0x4100
|
||||
/* f13c578: 44812000 */ mtc1 $at,$f4
|
||||
/* f13c57c: 24020001 */ addiu $v0,$zero,0x1
|
||||
/* f13c580: 3c014f00 */ lui $at,0x4f00
|
||||
/* f13c584: 46046182 */ mul.s $f6,$f12,$f4
|
||||
/* f13c588: 24040007 */ addiu $a0,$zero,0x7
|
||||
/* f13c58c: 444ef800 */ cfc1 $t6,$31
|
||||
/* f13c590: 44c2f800 */ ctc1 $v0,$31
|
||||
/* f13c594: 00000000 */ nop
|
||||
/* f13c598: 46003224 */ cvt.w.s $f8,$f6
|
||||
/* f13c59c: 4442f800 */ cfc1 $v0,$31
|
||||
/* f13c5a0: 00000000 */ nop
|
||||
/* f13c5a4: 30420078 */ andi $v0,$v0,0x78
|
||||
/* f13c5a8: 50400013 */ beqzl $v0,.L0f13c5f8
|
||||
/* f13c5ac: 44024000 */ mfc1 $v0,$f8
|
||||
/* f13c5b0: 44814000 */ mtc1 $at,$f8
|
||||
/* f13c5b4: 24020001 */ addiu $v0,$zero,0x1
|
||||
/* f13c5b8: 46083201 */ sub.s $f8,$f6,$f8
|
||||
/* f13c5bc: 44c2f800 */ ctc1 $v0,$31
|
||||
/* f13c5c0: 00000000 */ nop
|
||||
/* f13c5c4: 46004224 */ cvt.w.s $f8,$f8
|
||||
/* f13c5c8: 4442f800 */ cfc1 $v0,$31
|
||||
/* f13c5cc: 00000000 */ nop
|
||||
/* f13c5d0: 30420078 */ andi $v0,$v0,0x78
|
||||
/* f13c5d4: 14400005 */ bnez $v0,.L0f13c5ec
|
||||
/* f13c5d8: 00000000 */ nop
|
||||
/* f13c5dc: 44024000 */ mfc1 $v0,$f8
|
||||
/* f13c5e0: 3c018000 */ lui $at,0x8000
|
||||
/* f13c5e4: 10000007 */ b .L0f13c604
|
||||
/* f13c5e8: 00411025 */ or $v0,$v0,$at
|
||||
.L0f13c5ec:
|
||||
/* f13c5ec: 10000005 */ b .L0f13c604
|
||||
/* f13c5f0: 2402ffff */ addiu $v0,$zero,-1
|
||||
/* f13c5f4: 44024000 */ mfc1 $v0,$f8
|
||||
.L0f13c5f8:
|
||||
/* f13c5f8: 00000000 */ nop
|
||||
/* f13c5fc: 0440fffb */ bltz $v0,.L0f13c5ec
|
||||
/* f13c600: 00000000 */ nop
|
||||
.L0f13c604:
|
||||
/* f13c604: 3c010003 */ lui $at,0x3
|
||||
/* f13c608: 3421f801 */ ori $at,$at,0xf801
|
||||
/* f13c60c: 0041082b */ sltu $at,$v0,$at
|
||||
/* f13c610: 44cef800 */ ctc1 $t6,$31
|
||||
/* f13c614: 14200004 */ bnez $at,.L0f13c628
|
||||
/* f13c618: 00401825 */ or $v1,$v0,$zero
|
||||
/* f13c61c: 306f07ff */ andi $t7,$v1,0x7ff
|
||||
/* f13c620: 10000035 */ b .L0f13c6f8
|
||||
/* f13c624: 01e01825 */ or $v1,$t7,$zero
|
||||
.L0f13c628:
|
||||
/* f13c628: 3c010003 */ lui $at,0x3
|
||||
/* f13c62c: 3421f001 */ ori $at,$at,0xf001
|
||||
/* f13c630: 0041082b */ sltu $at,$v0,$at
|
||||
/* f13c634: 14200005 */ bnez $at,.L0f13c64c
|
||||
/* f13c638: 00401825 */ or $v1,$v0,$zero
|
||||
/* f13c63c: 307807ff */ andi $t8,$v1,0x7ff
|
||||
/* f13c640: 03001825 */ or $v1,$t8,$zero
|
||||
/* f13c644: 1000002c */ b .L0f13c6f8
|
||||
/* f13c648: 24040006 */ addiu $a0,$zero,0x6
|
||||
.L0f13c64c:
|
||||
/* f13c64c: 3c010003 */ lui $at,0x3
|
||||
/* f13c650: 3421e001 */ ori $at,$at,0xe001
|
||||
/* f13c654: 0041082b */ sltu $at,$v0,$at
|
||||
/* f13c658: 14200004 */ bnez $at,.L0f13c66c
|
||||
/* f13c65c: 0002c842 */ srl $t9,$v0,0x1
|
||||
/* f13c660: 332307ff */ andi $v1,$t9,0x7ff
|
||||
/* f13c664: 10000024 */ b .L0f13c6f8
|
||||
/* f13c668: 24040005 */ addiu $a0,$zero,0x5
|
||||
.L0f13c66c:
|
||||
/* f13c66c: 3c010003 */ lui $at,0x3
|
||||
/* f13c670: 3421c001 */ ori $at,$at,0xc001
|
||||
/* f13c674: 0041082b */ sltu $at,$v0,$at
|
||||
/* f13c678: 14200004 */ bnez $at,.L0f13c68c
|
||||
/* f13c67c: 00024882 */ srl $t1,$v0,0x2
|
||||
/* f13c680: 312307ff */ andi $v1,$t1,0x7ff
|
||||
/* f13c684: 1000001c */ b .L0f13c6f8
|
||||
/* f13c688: 24040004 */ addiu $a0,$zero,0x4
|
||||
.L0f13c68c:
|
||||
/* f13c68c: 3c010003 */ lui $at,0x3
|
||||
/* f13c690: 34218001 */ ori $at,$at,0x8001
|
||||
/* f13c694: 0041082b */ sltu $at,$v0,$at
|
||||
/* f13c698: 14200004 */ bnez $at,.L0f13c6ac
|
||||
/* f13c69c: 000258c2 */ srl $t3,$v0,0x3
|
||||
/* f13c6a0: 316307ff */ andi $v1,$t3,0x7ff
|
||||
/* f13c6a4: 10000014 */ b .L0f13c6f8
|
||||
/* f13c6a8: 24040003 */ addiu $a0,$zero,0x3
|
||||
.L0f13c6ac:
|
||||
/* f13c6ac: 3c010003 */ lui $at,0x3
|
||||
/* f13c6b0: 34210001 */ ori $at,$at,0x1
|
||||
/* f13c6b4: 0041082b */ sltu $at,$v0,$at
|
||||
/* f13c6b8: 14200004 */ bnez $at,.L0f13c6cc
|
||||
/* f13c6bc: 00026902 */ srl $t5,$v0,0x4
|
||||
/* f13c6c0: 31a307ff */ andi $v1,$t5,0x7ff
|
||||
/* f13c6c4: 1000000c */ b .L0f13c6f8
|
||||
/* f13c6c8: 24040002 */ addiu $a0,$zero,0x2
|
||||
.L0f13c6cc:
|
||||
/* f13c6cc: 3c010002 */ lui $at,0x2
|
||||
/* f13c6d0: 34210001 */ ori $at,$at,0x1
|
||||
/* f13c6d4: 0041082b */ sltu $at,$v0,$at
|
||||
/* f13c6d8: 14200005 */ bnez $at,.L0f13c6f0
|
||||
/* f13c6dc: 0002c982 */ srl $t9,$v0,0x6
|
||||
/* f13c6e0: 00027942 */ srl $t7,$v0,0x5
|
||||
/* f13c6e4: 31e307ff */ andi $v1,$t7,0x7ff
|
||||
/* f13c6e8: 10000003 */ b .L0f13c6f8
|
||||
/* f13c6ec: 24040001 */ addiu $a0,$zero,0x1
|
||||
.L0f13c6f0:
|
||||
/* f13c6f0: 332307ff */ andi $v1,$t9,0x7ff
|
||||
/* f13c6f4: 00002025 */ or $a0,$zero,$zero
|
||||
.L0f13c6f8:
|
||||
/* f13c6f8: 00044b40 */ sll $t1,$a0,0xd
|
||||
/* f13c6fc: 00035080 */ sll $t2,$v1,0x2
|
||||
/* f13c700: 012a1025 */ or $v0,$t1,$t2
|
||||
/* f13c704: 304bffff */ andi $t3,$v0,0xffff
|
||||
/* f13c708: 03e00008 */ jr $ra
|
||||
/* f13c70c: 01601025 */ or $v0,$t3,$zero
|
||||
);
|
||||
u16 func0f13c574(f32 arg0)
|
||||
{
|
||||
u32 value = arg0 * 8.0f;
|
||||
u32 left;
|
||||
u32 right = value;
|
||||
|
||||
// Mismatch: Register usage for "right" is different
|
||||
//u16 func0f13c574(f32 arg0)
|
||||
//{
|
||||
// u32 value = arg0 * 8.0f;
|
||||
// u32 left;
|
||||
// u32 right;
|
||||
//
|
||||
// if (value > 0x3f800) {
|
||||
// right = value & 0x7ff;
|
||||
// left = 7;
|
||||
// } else if (value > 0x3f000) {
|
||||
// right = value & 0x7ff;
|
||||
// left = 6;
|
||||
// } else if (value > 0x3e000) {
|
||||
// right = value >> 1 & 0x7ff;
|
||||
// left = 5;
|
||||
// } else if (value > 0x3c000) {
|
||||
// right = value >> 2 & 0x7ff;
|
||||
// left = 4;
|
||||
// } else if (value > 0x38000) {
|
||||
// right = value >> 3 & 0x7ff;
|
||||
// left = 3;
|
||||
// } else if (value > 0x30000) {
|
||||
// right = value >> 4 & 0x7ff;
|
||||
// left = 2;
|
||||
// } else if (value > 0x20000) {
|
||||
// right = value >> 5 & 0x7ff;
|
||||
// left = 1;
|
||||
// } else {
|
||||
// right = value >> 6 & 0x7ff;
|
||||
// left = 0;
|
||||
// }
|
||||
//
|
||||
// return left << 13 | right << 2;
|
||||
//}
|
||||
if (value > 0x3f800) {
|
||||
right = value & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 7;
|
||||
} else if (value > 0x3f000) {
|
||||
right = value & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 6;
|
||||
} else if (value > 0x3e000) {
|
||||
right = (value >> 1) & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 5;
|
||||
} else if (value > 0x3c000) {
|
||||
right = (value >> 2) & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 4;
|
||||
} else if (value > 0x38000) {
|
||||
right = (value >> 3) & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 3;
|
||||
} else if (value > 0x30000) {
|
||||
right = (value >> 4) & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 2;
|
||||
} else if (value > 0x20000) {
|
||||
right = (value >> 5) & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 1;
|
||||
} else {
|
||||
right = (value >> 6) & 0x7ff;
|
||||
right &= 0x7ff;
|
||||
left = 0;
|
||||
}
|
||||
|
||||
return left << 13 | (right << 2);
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f13c710
|
||||
|
|
|
|||
Loading…
Reference in New Issue