Lines Matching full:instruction
5 // A Disassembler object is used to disassemble a block of code instruction by
6 // instruction. The default implementation of the NameConverter object can be
62 // Writes one disassembled instruction into 'buffer' (0-terminated).
63 // Returns the length of the disassembled machine instruction in bytes.
64 int InstructionDecode(byte* instruction);
78 int FormatVFPRegister(Instruction* instr, const char* format);
79 void PrintMovwMovt(Instruction* instr);
80 int FormatVFPinstruction(Instruction* instr, const char* format);
81 void PrintCondition(Instruction* instr);
82 void PrintShiftRm(Instruction* instr);
83 void PrintShiftImm(Instruction* instr);
84 void PrintShiftSat(Instruction* instr);
85 void PrintPU(Instruction* instr);
89 int FormatRegister(Instruction* instr, const char* option);
92 int FormatOption(Instruction* instr, const char* option);
93 void Format(Instruction* instr, const char* format);
94 void Unknown(Instruction* instr);
96 // Each of these functions decodes one particular instruction type, a 3-bit
97 // field in the instruction encoding.
100 void DecodeType01(Instruction* instr);
101 void DecodeType2(Instruction* instr);
102 void DecodeType3(Instruction* instr);
103 void DecodeType4(Instruction* instr);
104 void DecodeType5(Instruction* instr);
105 void DecodeType6(Instruction* instr);
107 int DecodeType7(Instruction* instr);
109 void DecodeTypeVFP(Instruction* instr);
110 void DecodeType6CoprocessorIns(Instruction* instr);
112 void DecodeSpecialCondition(Instruction* instr);
114 void DecodeVMOVBetweenCoreAndSinglePrecisionRegisters(Instruction* instr);
115 void DecodeVCMP(Instruction* instr);
116 void DecodeVCVTBetweenDoubleAndSingle(Instruction* instr);
117 void DecodeVCVTBetweenFloatingPointAndInteger(Instruction* instr);
157 // Print the condition guarding the instruction.
158 void Decoder::PrintCondition(Instruction* instr) {
188 // Print the register shift operands for the instruction. Generally used for
190 void Decoder::PrintShiftRm(Instruction* instr) {
224 // Print the immediate operand for the instruction. Generally used for data
226 void Decoder::PrintShiftImm(Instruction* instr) {
235 void Decoder::PrintShiftSat(Instruction* instr) {
247 void Decoder::PrintPU(Instruction* instr) {
301 int Decoder::FormatRegister(Instruction* instr, const char* format) {
350 int Decoder::FormatVFPRegister(Instruction* instr, const char* format) {
393 int Decoder::FormatVFPinstruction(Instruction* instr, const char* format) {
434 // Print the movw or movt instruction.
435 void Decoder::PrintMovwMovt(Instruction* instr) {
448 int Decoder::FormatOption(Instruction* instr, const char* format) {
627 // instruction overview on page A3.16.2. The instructions that
635 // arbitrary ways that are unrelated to the signedness of the instruction.
668 // Format takes a formatting string for a whole instruction and prints it into
671 void Decoder::Format(Instruction* instr, const char* format) {
686 // it to crash if the data does not ressemble any known instruction.
695 // which will just print "unknown" of the instruction bits.
696 void Decoder::Unknown(Instruction* instr) {
701 void Decoder::DecodeType01(Instruction* instr) {
704 // multiply instruction or extra loads and stores
710 // The MUL instruction description (A 4.1.33) refers to Rd as being
716 // The MLA instruction description (A 4.1.28) refers to the order
722 // The MLS instruction description (A 4.1.29) refers to the order
951 void Decoder::DecodeType2(Instruction* instr) {
986 void Decoder::DecodeType3(Instruction* instr) {
1156 void Decoder::DecodeType4(Instruction* instr) {
1170 void Decoder::DecodeType5(Instruction* instr) {
1175 void Decoder::DecodeType6(Instruction* instr) {
1180 int Decoder::DecodeType7(Instruction* instr) {
1189 + Instruction::kInstrSize),
1191 + Instruction::kInstrSize),
1193 + Instruction::kInstrSize));
1194 // We have decoded 2 * Instruction::kInstrSize bytes.
1195 return 2 * Instruction::kInstrSize;
1202 return Instruction::kInstrSize;
1206 // void Decoder::DecodeTypeVFP(Instruction* instr)
1224 void Decoder::DecodeTypeVFP(Instruction* instr) {
1351 Instruction* instr) {
1365 void Decoder::DecodeVCMP(Instruction* instr) {
1388 void Decoder::DecodeVCVTBetweenDoubleAndSingle(Instruction* instr) {
1402 void Decoder::DecodeVCVTBetweenFloatingPointAndInteger(Instruction* instr) {
1450 void Decoder::DecodeType6CoprocessorIns(Instruction* instr) {
1539 void Decoder::DecodeSpecialCondition(Instruction* instr) {
1643 // Disassemble the instruction at *instr_ptr into the output buffer.
1645 Instruction* instr = Instruction::At(instr_ptr);
1646 // Print raw instruction bytes.
1652 return Instruction::kInstrSize;
1659 return Instruction::kInstrSize;
1662 // instruction.
1663 Instruction* target = Instruction::At(instr_ptr + Instruction::kInstrSize);
1667 return 2 * Instruction::kInstrSize;
1704 return Instruction::kInstrSize;
1762 byte* instruction) {
1764 return d.InstructionDecode(instruction);
1768 int Disassembler::ConstantPoolSizeAt(byte* instruction) {
1769 return v8::internal::Decoder::ConstantPoolSizeAt(instruction);