Home | History | Annotate | Line # | Download | only in mips
      1 // -*- C -*-
      2 //
      3 // toshiba specific instructions.
      4 //
      5 
      6 011100,5.RS,5.RT,5.RD,00000000000:MMINORM:::MADD
      7 "madd r<RS>, r<RT>":RD == 0
      8 "madd r<RD>, r<RS>, r<RT>"
      9 *r3900
     10 {
     11   int64_t prod = (U8_4 (VL4_8 (HI), VL4_8 (LO))
     12 		   + ((int64_t) EXTEND32 (GPR[RT])
     13 		      * (int64_t) EXTEND32 (GPR[RS])));
     14   check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
     15   TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
     16   LO = EXTEND32 (prod);
     17   HI = EXTEND32 (VH4_8 (prod));
     18   TRACE_ALU_RESULT2 (HI, LO);
     19   if (RD != 0)
     20     GPR[RD] = LO;
     21 }
     22 
     23 
     24 011100,5.RS,5.RT,5.RD,00000000001:MMINORM:::MADDU
     25 "maddu r<RS>, r<RT>":RD == 0
     26 "maddu r<RD>, r<RS>, r<RT>"
     27 *r3900
     28 {
     29   uint64_t prod = (U8_4 (VL4_8 (HI), VL4_8 (LO))
     30 		     + ((uint64_t) VL4_8 (GPR[RS])
     31 			* (uint64_t) VL4_8 (GPR[RT])));
     32   check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
     33   TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
     34   LO = EXTEND32 (prod);
     35   HI = EXTEND32 (VH4_8 (prod));
     36   TRACE_ALU_RESULT2 (HI, LO);
     37   if (RD != 0)
     38     GPR[RD] = LO;
     39 }
     40 
     41 000000,CODE.20,001110::CO1:::SDBBP
     42 "sdbbp"
     43 *r3900:
     44 {
     45   SignalException (DebugBreakPoint, instruction);
     46 }
     47