Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/tools/llvm-readobj/ARMEHABIPrinter.h
Show First 20 Lines • Show All 152 Lines • ▼ Show 20 Lines | inline void OpcodeDecoder::Decode_10110000(const uint8_t *Opcodes, | ||||
uint8_t Opcode = Opcodes[OI++ ^ 3]; | uint8_t Opcode = Opcodes[OI++ ^ 3]; | ||||
SW.startLine() << format("0x%02X ; finish\n", Opcode); | SW.startLine() << format("0x%02X ; finish\n", Opcode); | ||||
} | } | ||||
inline void OpcodeDecoder::Decode_10110001_0000iiii(const uint8_t *Opcodes, | inline void OpcodeDecoder::Decode_10110001_0000iiii(const uint8_t *Opcodes, | ||||
unsigned &OI) { | unsigned &OI) { | ||||
uint8_t Opcode0 = Opcodes[OI++ ^ 3]; | uint8_t Opcode0 = Opcodes[OI++ ^ 3]; | ||||
uint8_t Opcode1 = Opcodes[OI++ ^ 3]; | uint8_t Opcode1 = Opcodes[OI++ ^ 3]; | ||||
SW.startLine() | SW.startLine() << format("0x%02X 0x%02X ; %s", Opcode0, Opcode1, | ||||
<< format("0x%02X 0x%02X ; %s", Opcode0, Opcode1, | (Opcode1 & 0xf0) ? "spare" : "pop "); | ||||
((Opcode1 & 0xf0) || Opcode1 == 0x00) ? "spare" : "pop "); | |||||
if (((Opcode1 & 0xf0) == 0x00) && Opcode1) | if (((Opcode1 & 0xf0) == 0x00) && Opcode1) | ||||
PrintGPR((Opcode1 & 0x0f)); | PrintGPR((Opcode1 & 0x0f)); | ||||
OS << '\n'; | OS << '\n'; | ||||
} | } | ||||
inline void OpcodeDecoder::Decode_10110010_uleb128(const uint8_t *Opcodes, | inline void OpcodeDecoder::Decode_10110010_uleb128(const uint8_t *Opcodes, | ||||
unsigned &OI) { | unsigned &OI) { | ||||
uint8_t Opcode = Opcodes[OI++ ^ 3]; | uint8_t Opcode = Opcodes[OI++ ^ 3]; | ||||
SW.startLine() << format("0x%02X ", Opcode); | SW.startLine() << format("0x%02X ", Opcode); | ||||
Show All 18 Lines | inline void OpcodeDecoder::Decode_10110011_sssscccc(const uint8_t *Opcodes, | ||||
uint8_t Start = ((Opcode1 & 0xf0) >> 4); | uint8_t Start = ((Opcode1 & 0xf0) >> 4); | ||||
uint8_t Count = ((Opcode1 & 0x0f) >> 0); | uint8_t Count = ((Opcode1 & 0x0f) >> 0); | ||||
PrintRegisters((((1 << (Count + 1)) - 1) << Start), "d"); | PrintRegisters((((1 << (Count + 1)) - 1) << Start), "d"); | ||||
OS << '\n'; | OS << '\n'; | ||||
} | } | ||||
inline void OpcodeDecoder::Decode_101101nn(const uint8_t *Opcodes, | inline void OpcodeDecoder::Decode_101101nn(const uint8_t *Opcodes, | ||||
unsigned &OI) { | unsigned &OI) { | ||||
uint8_t Opcode = Opcodes[OI++ ^ 3]; | uint8_t Opcode = Opcodes[OI++ ^ 3]; | ||||
SW.startLine() << format("0x%02X ; spare\n", Opcode); | SW.startLine() << format("0x%02X ; %s\n", Opcode, | ||||
(Opcode == 0xb4) ? "pop ra_auth_code" : "spare"); | |||||
} | } | ||||
inline void OpcodeDecoder::Decode_10111nnn(const uint8_t *Opcodes, | inline void OpcodeDecoder::Decode_10111nnn(const uint8_t *Opcodes, | ||||
unsigned &OI) { | unsigned &OI) { | ||||
uint8_t Opcode = Opcodes[OI++ ^ 3]; | uint8_t Opcode = Opcodes[OI++ ^ 3]; | ||||
SW.startLine() << format("0x%02X ; pop ", Opcode); | SW.startLine() << format("0x%02X ; pop ", Opcode); | ||||
PrintRegisters((((1 << ((Opcode & 0x07) + 1)) - 1) << 8), "d"); | PrintRegisters((((1 << ((Opcode & 0x07) + 1)) - 1) << 8), "d"); | ||||
OS << '\n'; | OS << '\n'; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 441 Lines • Show Last 20 Lines |