コード例 #1
0
void X86Compiler::_emitJcc(uint32_t code, const Label* label, uint32_t hint)
{
  if (hint == kCondHintNone)
  {
    _emitInstruction(code, label);
  }
  else
  {
    Imm imm(hint);
    _emitInstruction(code, label, &imm);
  }
}
コード例 #2
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//Convert DWord to QWord (Sign Extend).
		//
		// RAX <- Sign Extend EAX
		void Ci586CPU::cdqe()
		{
			_emitInstruction( INST_CDQE );
		}
コード例 #3
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//Compares the 128-bit value in RDX:RAX with the memory operand (X64).
		//
		// If the values are equal, then this instruction stores the 128-bit value
		// in RCX:RBX into the memory operand and sets the zero flag. Otherwise,
		// this instruction copies the 128-bit memory operand into the RDX:RAX
		// registers and clears the zero flag.
		void Ci586CPU::cmpxchg16b( const CMem& dst )
		{
			_emitInstruction( INST_CMPXCHG16B, &dst );
		}
コード例 #4
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//------------------------------------------------------------------------------
		//Find RAX, starting at ES:[EDI/RDI].
		void Ci586CPU::repne_scasq()
		{
			_emitInstruction( INST_REPNE_SCASQ );
		}
コード例 #5
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//------------------------------------------------------------------------------
		//Read Time-Stamp Counter and Processor ID (New).
		void Ci586CPU::rdtscp()
		{
			_emitInstruction( INST_RDTSCP );
		}
コード例 #6
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//------------------------------------------------------------------------------
		//Repeated find nonmatching QWORDs in ES:[EDI/RDI] and DS:[ESI/RDI].
		void Ci586CPU::repne_cmpsq()
		{
			_emitInstruction( INST_REPNE_CMPSQ );
		}
コード例 #7
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//------------------------------------------------------------------------------
		//Fill ECX/RCX QWORDs at ES:[EDI/RDI] with RAX.
		void Ci586CPU::rep_stosq()
		{
			_emitInstruction( INST_REP_STOSQ );
		}
コード例 #8
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//------------------------------------------------------------------------------
		//Move ECX/RCX QWORDs from DS:[ESI/RSI] to ES:[EDI/RDI].
		void Ci586CPU::rep_movsq()
		{
			_emitInstruction( INST_REP_MOVSQ );
		}
コード例 #9
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//------------------------------------------------------------------------------
		//Load ECX/RCX QWORDs from DS:[ESI/RSI] to RAX.
		void Ci586CPU::rep_lodsq()
		{
			_emitInstruction( INST_REP_LODSQ );
		}
コード例 #10
0
ファイル: i586CPU.cpp プロジェクト: mfaithfull/QOR
		//------------------------------------------------------------------------------
		//Move DWord to QWord with sign-extension.
		// @overload
		void Ci586CPU::movsxd( const CGPReg& dst, const CMem& src )
		{
			_emitInstruction( INST_MOVSXD, &dst, &src );
		}