m_fixed_s.s (1749B)
1 #include <asm.h> 2 #include <PR/R4300.h> 3 #include <PR/ultratypes.h> 4 5 #define zero $0 6 #define at $1 7 #define v0 $2 8 #define v1 $3 9 #define a0 $4 10 #define a1 $5 11 #define a2 $6 12 #define a3 $7 13 #define t0 $8 14 #define t1 $9 15 #define t2 $10 16 #define t3 $11 17 #define t4 $12 18 #define t5 $13 19 #define t6 $14 20 #define t7 $15 21 #define s0 $16 22 #define s1 $17 23 #define s2 $18 24 #define s3 $19 25 #define s4 $20 26 #define s5 $21 27 #define s6 $22 28 #define s7 $23 29 #define t8 $24 30 #define t9 $25 31 #define k0 $26 32 #define k1 $27 33 #define gp $28 34 #define sp $29 35 #define fp $30 36 #define ra $31 37 #define return s7 38 39 .text 40 .set noreorder 41 42 /*------------------------------------------*/ 43 /* fixed_t FixedMul (fixed_t a, fixed_t b) */ 44 /*------------------------------------------*/ 45 46 .globl FixedMul 47 .ent FixedMul 48 49 FixedMul: /* 800044D0 */ 50 51 dmult $4, $5 52 mflo $2 53 dsra $2, $2, 16 54 jr $31 55 nop 56 57 .end FixedMul 58 59 /*-------------------------------------------*/ 60 /* fixed_t FixedDiv2 (fixed_t a, fixed_t b) */ 61 /*-------------------------------------------*/ 62 63 .globl FixedDiv2 64 .ent FixedDiv2 65 66 FixedDiv2: /* 800044E4 */ 67 68 dsll $4, $4, 16 69 ddiv $4, $5 70 71 /*---------------------------------------------------*/ 72 /* automatically generated with opcode (ddiv $4, $5) */ 73 /* and -mips3 on command line */ 74 /*---------------------------------------------------*/ 75 /* 76 bne $5, $0, loc_800044F8 77 nop 78 break 0x1C00 79 80 loc_800044F8: 81 daddiu $1, $0, 0xffff 82 bne $5, $1, loc_80004514 83 daddiu $1, $0, 0x0001 84 dsll32 $1, $1, 0x1f 85 bne $4, $1, loc_80004514 86 nop 87 break 0x1800 88 89 loc_80004514: 90 mflo $4 91 */ 92 /*--------------------------------------------------*/ 93 94 mflo $2 95 jr $31 96 nop 97 98 .end FixedDiv2