Lines Matching refs:opcode

184 EmulateInstructionARM64::GetOpcodeForInstruction(const uint32_t opcode) {  in GetOpcodeForInstruction()  argument
366 if ((g_opcodes[i].mask & opcode) == g_opcodes[i].value) in GetOpcodeForInstruction()
390 const uint32_t opcode = m_opcode.GetOpcode32(); in EvaluateInstruction() local
391 Opcode *opcode_data = GetOpcodeForInstruction(opcode); in EvaluateInstruction()
416 success = (this->*opcode_data->callback)(opcode); in EvaluateInstruction()
580 bool EmulateInstructionARM64::EmulateADDSUBImm(const uint32_t opcode) { in EmulateADDSUBImm() argument
616 const uint32_t sf = Bit32(opcode, 31); in EmulateADDSUBImm()
617 const uint32_t op = Bit32(opcode, 30); in EmulateADDSUBImm()
618 const uint32_t S = Bit32(opcode, 29); in EmulateADDSUBImm()
619 const uint32_t shift = Bits32(opcode, 23, 22); in EmulateADDSUBImm()
620 const uint32_t imm12 = Bits32(opcode, 21, 10); in EmulateADDSUBImm()
621 const uint32_t Rn = Bits32(opcode, 9, 5); in EmulateADDSUBImm()
622 const uint32_t Rd = Bits32(opcode, 4, 0); in EmulateADDSUBImm()
696 bool EmulateInstructionARM64::EmulateLDPSTP(const uint32_t opcode) { in EmulateLDPSTP() argument
697 uint32_t opc = Bits32(opcode, 31, 30); in EmulateLDPSTP()
698 uint32_t V = Bit32(opcode, 26); in EmulateLDPSTP()
699 uint32_t L = Bit32(opcode, 22); in EmulateLDPSTP()
700 uint32_t imm7 = Bits32(opcode, 21, 15); in EmulateLDPSTP()
701 uint32_t Rt2 = Bits32(opcode, 14, 10); in EmulateLDPSTP()
702 uint32_t Rn = Bits32(opcode, 9, 5); in EmulateLDPSTP()
703 uint32_t Rt = Bits32(opcode, 4, 0); in EmulateLDPSTP()
930 bool EmulateInstructionARM64::EmulateLDRSTRImm(const uint32_t opcode) { in EmulateLDRSTRImm() argument
931 uint32_t size = Bits32(opcode, 31, 30); in EmulateLDRSTRImm()
932 uint32_t opc = Bits32(opcode, 23, 22); in EmulateLDRSTRImm()
933 uint32_t n = Bits32(opcode, 9, 5); in EmulateLDRSTRImm()
934 uint32_t t = Bits32(opcode, 4, 0); in EmulateLDRSTRImm()
944 offset = llvm::SignExtend64<9>(Bits32(opcode, 20, 12)); in EmulateLDRSTRImm()
949 offset = llvm::SignExtend64<9>(Bits32(opcode, 20, 12)); in EmulateLDRSTRImm()
954 offset = LSL(Bits32(opcode, 21, 10), size); in EmulateLDRSTRImm()
1064 bool EmulateInstructionARM64::EmulateB(const uint32_t opcode) { in EmulateB() argument
1080 int64_t offset = llvm::SignExtend64<28>(Bits32(opcode, 25, 0) << 2); in EmulateB()
1081 BranchType branch_type = Bit32(opcode, 31) ? BranchType_CALL : BranchType_JMP; in EmulateB()
1100 bool EmulateInstructionARM64::EmulateBcond(const uint32_t opcode) { in EmulateBcond() argument
1109 if (ConditionHolds(Bits32(opcode, 3, 0))) { in EmulateBcond()
1117 int64_t offset = llvm::SignExtend64<21>(Bits32(opcode, 23, 5) << 2); in EmulateBcond()
1129 bool EmulateInstructionARM64::EmulateCBZ(const uint32_t opcode) { in EmulateCBZ() argument
1143 uint32_t t = Bits32(opcode, 4, 0); in EmulateCBZ()
1144 bool is_zero = Bit32(opcode, 24) == 0; in EmulateCBZ()
1145 int32_t offset = llvm::SignExtend64<21>(Bits32(opcode, 23, 5) << 2); in EmulateCBZ()
1167 bool EmulateInstructionARM64::EmulateTBZ(const uint32_t opcode) { in EmulateTBZ() argument
1178 uint32_t t = Bits32(opcode, 4, 0); in EmulateTBZ()
1179 uint32_t bit_pos = (Bit32(opcode, 31) << 6) | (Bits32(opcode, 23, 19)); in EmulateTBZ()
1180 uint32_t bit_val = Bit32(opcode, 24); in EmulateTBZ()
1181 int64_t offset = llvm::SignExtend64<16>(Bits32(opcode, 18, 5) << 2); in EmulateTBZ()