5 #ifndef V8_ARM64_DISASM_ARM64_H_ 6 #define V8_ARM64_DISASM_ARM64_H_ 8 #include "src/arm64/assembler-arm64.h" 9 #include "src/arm64/decoder-arm64.h" 10 #include "src/arm64/instructions-arm64.h" 11 #include "src/globals.h" 12 #include "src/utils.h" 26 #define DECLARE(A) void Visit##A(Instruction* instr); 38 virtual void AppendRegisterNameToOutput(
const CPURegister& reg);
40 void Format(
Instruction* instr,
const char* mnemonic,
const char* format);
41 void Substitute(
Instruction* instr,
const char*
string);
42 int SubstituteField(
Instruction* instr,
const char* format);
43 int SubstituteRegisterField(
Instruction* instr,
const char* format);
44 int SubstituteImmediateField(
Instruction* instr,
const char* format);
45 int SubstituteLiteralField(
Instruction* instr,
const char* format);
46 int SubstituteBitfieldImmediateField(
Instruction* instr,
const char* format);
47 int SubstituteShiftField(
Instruction* instr,
const char* format);
48 int SubstituteExtendField(
Instruction* instr,
const char* format);
49 int SubstituteConditionField(
Instruction* instr,
const char* format);
50 int SubstitutePCRelAddressField(
Instruction* instr,
const char* format);
51 int SubstituteBranchTargetField(
Instruction* instr,
const char* format);
52 int SubstituteLSRegOffsetField(
Instruction* instr,
const char* format);
53 int SubstitutePrefetchField(
Instruction* instr,
const char* format);
54 int SubstituteBarrierField(
Instruction* instr,
const char* format);
57 return (instr->Rd() == kZeroRegCode);
61 return (instr->Rn() == kZeroRegCode);
65 return (instr->Rm() == kZeroRegCode);
69 return (instr->Ra() == kZeroRegCode);
72 bool IsMovzMovnImm(
unsigned reg_size, uint64_t value);
75 void AppendToOutput(
const char*
string, ...);
99 #endif // V8_ARM64_DISASM_ARM64_H_