* ****************************************************************************/ #include "cgstd.h" #include "coderep.h" #include "ppcregn.h" #include "zoiks.h" #include "data.h" static hw_reg_set Empty[] = { EMPTY }; static hw_reg_set Reg64Order[] = { HW_D_1( HW_D3 ), HW_D_1( HW_D4 ), HW_D_1( HW_D5 ), HW_D_1( HW_D6 ), HW_D_1( HW_D7 ), HW_D_1( HW_D8 ), HW_D_1( HW_D9 ), HW_D_1( HW_D15 ), HW_D_1( HW_D16 ), HW_D_1( HW_D17 ), HW_D_1( HW_D18 ), HW_D_1( HW_D19 ), HW_D_1( HW_D20 ), HW_D_1( HW_D21 ), HW_D_1( HW_D22 ), HW_D_1( HW_D23 ),
#include "coderep.h" #include "typedef.h" #include "procdef.h" #include "cgdefs.h" #include "types.h" #include "regset.h" #include "zoiks.h" #include "ppcparm.h" #include "rgtbl.h" #include "typemap.h" #include "parmreg.h" #include "feprotos.h" static hw_reg_set floatRegs[] = { HW_D_1( HW_F1 ), HW_D_1( HW_F2 ), HW_D_1( HW_F3 ), HW_D_1( HW_F4 ), HW_D_1( HW_F5 ), HW_D_1( HW_F6 ), HW_D_1( HW_F7 ), HW_D_1( HW_F8 ), HW_D_1( HW_F9 ), HW_D_1( HW_F10 ), HW_D_1( HW_F11 ), HW_D_1( HW_F12 ), HW_D_1( HW_F13 ), HW_D_1( HW_EMPTY ) };
/* some short forms*/ #define RL_DP RL_DBL_OR_PTR #define RL_WS RL_ANYWORD #define RL_2B RL_TWOBYTE #define RL_IX RL_INDEX #define RL_TI RL_TEMP_INDEX #define RL_WD RL_WORD #define RL_SG RL_SEG /* * Note: MAX_RG in "rg.h" must be not less then number of elements * in longest of these tables! */ static hw_reg_set Reg64Order[] = { HW_D_1( HW_EAX ), HW_D_1( HW_EBX ), HW_D_1( HW_ESI ), HW_D_1( HW_EDI ), HW_D_1( HW_EDX ), HW_D_1( HW_ECX ), HW_D_1( HW_BP ), HW_D_1( HW_SP ), HW_D_1( HW_EMPTY ) }; static hw_reg_set Empty[] = { HW_D_1( HW_EMPTY ) }; static hw_reg_set ALReg[] = { HW_D_1( HW_AL ), HW_D_1( HW_EMPTY )
#define RMR_MOD_DIR 6 #define RMR_MOD_IND 0x80 #define D0 (0 << S_RMR_MOD) #define D8 (1 << S_RMR_MOD) #define D16 (2 << S_RMR_MOD) #define INDICES 8 #define BP_INDEX 6 static hw_reg_set IndexTab[] = { HW_D_2( HW_BX, HW_SI ), HW_D_2( HW_BX, HW_DI ), HW_D_2( HW_BP, HW_SI ), HW_D_2( HW_BP, HW_DI ), HW_D_1( HW_SI ), HW_D_1( HW_DI ), HW_D_1( HW_BP ), HW_D_1( HW_BX ) }; static void OpndSizeIf( void ) /****************************/ { if( _IsTargetModel( USE_32 ) ) { AddToTemp( M_OPND_SIZE ); } } static byte DoIndex( hw_reg_set regs ) /****************************************/