2012-11-15 00:39:56 +01:00
# pragma once
# include "Emu/Cell/SPUOpcodes.h"
2013-07-03 18:17:16 +02:00
# include "Emu/Cell/PPCDisAsm.h"
2012-11-15 00:39:56 +01:00
# include "Emu/Cell/SPUThread.h"
# include "Gui/DisAsmFrame.h"
# include "Emu/Memory/Memory.h"
2013-11-03 20:23:16 +01:00
class SPUDisAsm
: public SPUOpcodes
, public PPCDisAsm
2012-11-15 00:39:56 +01:00
{
public :
2013-11-03 20:23:16 +01:00
SPUDisAsm ( CPUDisAsmMode mode ) : PPCDisAsm ( mode )
2012-11-15 00:39:56 +01:00
{
}
2013-11-03 20:23:16 +01:00
~ SPUDisAsm ( )
2012-11-15 00:39:56 +01:00
{
}
private :
virtual u32 DisAsmBranchTarget ( const s32 imm )
{
2013-11-03 20:23:16 +01:00
return branchTarget ( dump_pc , imm ) ;
2012-11-15 00:39:56 +01:00
}
private :
2013-07-06 01:49:38 +02:00
wxString & FixOp ( wxString & op )
{
op . Append ( ' ' , max < int > ( 10 - ( int ) op . Len ( ) , 0 ) ) ;
return op ;
}
void DisAsm ( const char * op )
{
Write ( op ) ;
}
void DisAsm ( wxString op , u32 a1 )
{
2014-02-10 13:53:09 +01:00
Write ( wxString : : Format ( " %s 0x%x " , FixOp ( op ) . wx_str ( ) , a1 ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , const char * a1 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s %s " , FixOp ( op ) . wx_str ( ) , wxString ( a1 ) . wx_str ( ) ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , const char * a1 , const char * a2 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s %s,%s " , FixOp ( op ) . wx_str ( ) , wxString ( a1 ) . wx_str ( ) , wxString ( a2 ) . wx_str ( ) ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , int a1 , const char * a2 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s 0x%x,%s " , FixOp ( op ) . wx_str ( ) , a1 , wxString ( a2 ) . wx_str ( ) ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , const char * a1 , int a2 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s %s,0x%x " , FixOp ( op ) . wx_str ( ) , wxString ( a1 ) . wx_str ( ) , a2 ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , int a1 , int a2 )
{
2014-02-10 13:53:09 +01:00
Write ( wxString : : Format ( " %s 0x%x,0x%x " , FixOp ( op ) . wx_str ( ) , a1 , a2 ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , const char * a1 , const char * a2 , const char * a3 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s %s,%s,%s " , FixOp ( op ) . wx_str ( ) , wxString ( a1 ) . wx_str ( ) , wxString ( a2 ) . wx_str ( ) , wxString ( a3 ) . wx_str ( ) ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , const char * a1 , int a2 , const char * a3 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s %s,0x%x(%s) " , FixOp ( op ) . wx_str ( ) , wxString ( a1 ) . wx_str ( ) , a2 , wxString ( a3 ) . wx_str ( ) ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , const char * a1 , const char * a2 , int a3 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s %s,%s,0x%x " , FixOp ( op ) . wx_str ( ) , wxString ( a1 ) . wx_str ( ) , wxString ( a2 ) . wx_str ( ) , a3 ) ) ;
2013-07-06 01:49:38 +02:00
}
void DisAsm ( wxString op , const char * a1 , const char * a2 , const char * a3 , const char * a4 )
{
2014-02-13 17:59:13 +01:00
Write ( wxString : : Format ( " %s %s,%s,%s,%s " , FixOp ( op ) . wx_str ( ) , wxString ( a1 ) . wx_str ( ) , wxString ( a2 ) . wx_str ( ) , wxString ( a3 ) . wx_str ( ) , wxString ( a4 ) . wx_str ( ) ) ) ;
2013-07-06 01:49:38 +02:00
}
2012-11-15 00:39:56 +01:00
//0 - 10
2013-07-04 16:20:36 +02:00
void STOP ( u32 code )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " stop " , code ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void LNOP ( )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " lnop " ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void SYNC ( u32 Cbit )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " sync " , Cbit ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DSYNC ( )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dsync " ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MFSPR ( u32 rt , u32 sa )
2013-06-30 10:46:29 +02:00
{
2013-11-09 02:17:44 +01:00
DisAsm ( " mfspr " , spu_reg_name [ rt ] , spu_reg_name [ sa ] ) ; // Are SPR mapped on the GPR or are there 128 additional registers ? Yes, there are also 128 SPR making 256 registers total
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void RDCH ( u32 rt , u32 ra )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rdch " , spu_reg_name [ rt ] , spu_ch_name [ ra ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void RCHCNT ( u32 rt , u32 ra )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rchcnt " , spu_reg_name [ rt ] , spu_ch_name [ ra ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void SF ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " sf " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void OR ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " or " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BG ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bg " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SFH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " sfh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void NOR ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " nor " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ABSDB ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " absdb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROT ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rot " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTM ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotm " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTMA ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotma " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHL ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shl " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " roth " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTHM ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rothm " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTMAH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotmah " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shlh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " roti " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTMI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotmi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTMAI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotmai " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLI ( u32 rt , u32 ra , s32 i7 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shli " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void ROTHI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rothi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTHMI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rothmi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTMAHI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotmahi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLHI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shlhi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void A ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " a " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void AND ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " and " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void CG ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cg " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void AH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ah " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void NAND ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " nand " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void AVGB ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " avgb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MTSPR ( u32 rt , u32 sa )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mtspr " , spu_reg_name [ rt ] , spu_reg_name [ sa ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void WRCH ( u32 ra , u32 rt )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " wrch " , spu_ch_name [ ra ] , spu_reg_name [ rt ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void BIZ ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " biz " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BINZ ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " binz " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BIHZ ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bihz " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BIHNZ ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bihnz " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void STOPD ( u32 rc , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bihnz " , spu_reg_name [ rc ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void STQX ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " stqx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void BI ( u32 ra )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bi " , spu_reg_name [ ra ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void BISL ( u32 rt , u32 ra )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bisl " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void IRET ( u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " iret " , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BISLED ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bisled " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void HBR ( u32 p , u32 ro , u32 ra )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " hbr " , DisAsmBranchTarget ( ro ) , spu_reg_name [ ra ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void GB ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " gb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void GBH ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " gbh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void GBB ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " gbb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FSM ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fsm " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FSMH ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fsmh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FSMB ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fsmb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FREST ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " frest " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FRSQEST ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " frsqest " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void LQX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " lqx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQBYBI ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqbybi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQMBYBI ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqmbybi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLQBYBI ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shlqbybi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CBX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cbx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CHX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " chx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CWX ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cwx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void CDX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cdx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQBI ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQMBI ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqmbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLQBI ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shlqbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQBY ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqby " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQMBY ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqmby " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLQBY ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shlqby " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ORX ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " orx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CBD ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cbd " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CHD ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " chd " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CWD ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cwd " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CDD ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cdd " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQBII ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqbii " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ROTQMBII ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqmbii " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLQBII ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shlqbii " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void ROTQBYI ( u32 rt , u32 ra , s32 i7 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqbyi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void ROTQMBYI ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " rotqmbyi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SHLQBYI ( u32 rt , u32 ra , s32 i7 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shlqbyi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void NOP ( u32 rt )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " nop " , spu_reg_name [ rt ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void CGT ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void XOR ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " xor " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CGTH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cgth " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void EQV ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " eqv " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CGTB ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cgtb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SUMB ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " sumb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-11-09 16:41:56 +01:00
void HGT ( u32 rt , s32 ra , s32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " hgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CLZ ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " clz " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void XSWD ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " xswd " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void XSHW ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " xshw " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CNTB ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cntb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void XSBH ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " xsbh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CLGT ( u32 rt , u32 ra , u32 rb )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " clgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void ANDC ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " andc " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FCGT ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fcgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFCGT ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfcgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FA ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fa " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FS ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fs " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FM ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fm " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CLGTH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " clgth " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ORC ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " orc " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FCMGT ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fcmgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFCMGT ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfcmgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFA ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfa " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFS ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfs " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFM ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfm " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CLGTB ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " clgtb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void HLGT ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " hlgt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFMA ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfma " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFMS ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfms " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFNMS ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfnms " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFNMA ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfnma " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CEQ ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ceq " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYHHU ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyhhu " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ADDX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " addx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SFX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " sfx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CGX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cgx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BGX ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bgx " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYHHA ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyhha " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYHHAU ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyhhau " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FSCRRD ( u32 rt )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fscrrd " , spu_reg_name [ rt ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FESD ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fesd " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FRDS ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " frds " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FSCRWR ( u32 rt , u32 ra )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fscrwr " , spu_reg_name [ rt ] , spu_reg_name [ ra ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFTSV ( u32 rt , u32 ra , s32 i7 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dftsv " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i7 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FCEQ ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fceq " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFCEQ ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfceq " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPY ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpy " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYHH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyhh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYS ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpys " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CEQH ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ceqh " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FCMEQ ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fcmeq " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void DFCMEQ ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " dfcmeq " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYU ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyu " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CEQB ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ceqb " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FI ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void HEQ ( u32 rt , u32 ra , u32 rb )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " heq " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
//0 - 9
void CFLTS ( u32 rt , u32 ra , s32 i8 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cflts " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i8 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CFLTU ( u32 rt , u32 ra , s32 i8 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cfltu " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i8 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CSFLT ( u32 rt , u32 ra , s32 i8 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " csflt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i8 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CUFLT ( u32 rt , u32 ra , s32 i8 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cuflt " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i8 ) ;
2013-06-30 10:46:29 +02:00
}
2012-11-15 00:39:56 +01:00
//0 - 8
2013-07-04 16:20:36 +02:00
void BRZ ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " brz " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void STQA ( u32 rt , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " stqa " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BRNZ ( u32 rt , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " brnz " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BRHZ ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " brhz " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void BRHNZ ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " brhnz " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void STQR ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " stqr " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void BRA ( s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " bra " , DisAsmBranchTarget ( i16 ) ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void LQA ( u32 rt , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " lqa " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BRASL ( u32 rt , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " brasl " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void BR ( s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " br " , DisAsmBranchTarget ( i16 ) ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void FSMBI ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fsmbi " , spu_reg_name [ rt ] , i16 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void BRSL ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " brsl " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void LQR ( u32 rt , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " lqr " , spu_reg_name [ rt ] , DisAsmBranchTarget ( i16 ) ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void IL ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " il " , spu_reg_name [ rt ] , i16 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void ILHU ( u32 rt , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ilhu " , spu_reg_name [ rt ] , i16 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ILH ( u32 rt , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ilh " , spu_reg_name [ rt ] , i16 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void IOHL ( u32 rt , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " iolh " , spu_reg_name [ rt ] , i16 ) ;
2012-11-15 00:39:56 +01:00
}
//0 - 7
2013-07-04 16:20:36 +02:00
void ORI ( u32 rt , u32 ra , s32 i10 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ori " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void ORHI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " orhi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ORBI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " orbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SFI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " sfi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void SFHI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " sfhi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ANDI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " andi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ANDHI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " andhi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void ANDBI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " andbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void AI ( u32 rt , u32 ra , s32 i10 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ai " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void AHI ( u32 rt , u32 ra , s32 i10 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ahi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void STQD ( u32 rt , s32 i10 , u32 ra )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " stqd " , spu_reg_name [ rt ] , i10 , spu_reg_name [ ra ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void LQD ( u32 rt , s32 i10 , u32 ra )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " lqd " , spu_reg_name [ rt ] , i10 , spu_reg_name [ ra ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void XORI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " xori " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void XORHI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " xorhi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void XORBI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " xorbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CGTI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cgti " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CGTHI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cgthi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CGTBI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " cgtbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void HGTI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " hgti " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CLGTI ( u32 rt , u32 ra , s32 i10 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " clgti " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void CLGTHI ( u32 rt , u32 ra , s32 i10 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " clgthi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void CLGTBI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " clgtbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void HLGTI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " hlgti " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void MPYUI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpyui " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CEQI ( u32 rt , u32 ra , s32 i10 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ceqi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void CEQHI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ceqhi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void CEQBI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ceqbi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void HEQI ( u32 rt , u32 ra , s32 i10 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " heqi " , spu_reg_name [ rt ] , spu_reg_name [ ra ] , i10 ) ;
2013-06-30 10:46:29 +02:00
}
2012-11-15 00:39:56 +01:00
//0 - 6
2013-07-04 16:20:36 +02:00
void HBRA ( s32 ro , s32 i16 )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " hbra " , DisAsmBranchTarget ( ro ) , DisAsmBranchTarget ( i16 ) ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void HBRR ( s32 ro , s32 i16 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " hbrr " , DisAsmBranchTarget ( ro ) , DisAsmBranchTarget ( i16 ) ) ;
2012-11-15 00:39:56 +01:00
}
2013-12-07 23:52:41 +01:00
void ILA ( u32 rt , u32 i18 )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " ila " , spu_reg_name [ rt ] , i18 ) ;
2012-11-15 00:39:56 +01:00
}
//0 - 3
2013-07-04 16:20:36 +02:00
void SELB ( u32 rc , u32 ra , u32 rb , u32 rt )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " selb " , spu_reg_name [ rc ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] , spu_reg_name [ rt ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void SHUFB ( u32 rc , u32 ra , u32 rb , u32 rt )
2012-11-15 00:39:56 +01:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " shufb " , spu_reg_name [ rc ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] , spu_reg_name [ rt ] ) ;
2012-11-15 00:39:56 +01:00
}
2013-07-04 16:20:36 +02:00
void MPYA ( u32 rc , u32 ra , u32 rb , u32 rt )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " mpya " , spu_reg_name [ rc ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] , spu_reg_name [ rt ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FNMS ( u32 rc , u32 ra , u32 rb , u32 rt )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fnms " , spu_reg_name [ rc ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] , spu_reg_name [ rt ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FMA ( u32 rc , u32 ra , u32 rb , u32 rt )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fma " , spu_reg_name [ rc ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] , spu_reg_name [ rt ] ) ;
2013-06-30 10:46:29 +02:00
}
2013-07-04 16:20:36 +02:00
void FMS ( u32 rc , u32 ra , u32 rb , u32 rt )
2013-06-30 10:46:29 +02:00
{
2013-07-06 01:49:38 +02:00
DisAsm ( " fms " , spu_reg_name [ rc ] , spu_reg_name [ ra ] , spu_reg_name [ rb ] , spu_reg_name [ rt ] ) ;
2013-06-30 10:46:29 +02:00
}
2012-11-15 00:39:56 +01:00
2013-07-04 16:20:36 +02:00
void UNK ( u32 code , u32 opcode , u32 gcode )
2012-11-15 00:39:56 +01:00
{
2013-07-04 16:20:36 +02:00
Write ( wxString : : Format ( " Unknown/Illegal opcode! (0x%08x, 0x%x, 0x%x) " , code , opcode , gcode ) ) ;
2012-11-15 00:39:56 +01:00
}
} ;