static void _imul_ImmStyle( const xRegisterInt& param1, const SrcType& param2, int imm ) { // for iMul OpSize is allowed to be 16 or 32 bit only. const uint OpSize = param1.GetOperandSize(); pxAssert( OpSize == param2.GetOperandSize() ); pxAssert( OpSize > 1 ); xOpWrite0F( (OpSize == 2) ? 0x66 : 0, is_s8( imm ) ? 0x6b : 0x69, param1, param2 ); if( is_s8( imm ) ) xWrite8( (u8)imm ); else param1.xWriteImm( imm ); }
// ===================================================================================================== // TEST / INC / DEC // ===================================================================================================== void xImpl_Test::operator()( const xRegisterInt& to, const xRegisterInt& from ) const { pxAssert( to.GetOperandSize() == from.GetOperandSize() ); xOpWrite( to.GetPrefix16(), to.Is8BitOp() ? 0x84 : 0x85, from, to ); }