DOOM64-RE

DOOM 64 Reverse Engineering
Log | Files | Refs | README | LICENSE

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