Home | History | Annotate | Download | only in src

Lines Matching full:opcode

107 // The VCDiff format allows each opcode to represent either
109 // examine the opcode generated by the last call to EncodeInstruction.
110 // If that opcode was a single-instruction opcode, this function checks
111 // whether there is a compound (double-instruction) opcode that can
114 // single-instruction opcode at position last_opcode_index_ will be
115 // overwritten with the new double-instruction opcode.
117 // In the majority of cases, no compound opcode will be possible,
118 // and a new single-instruction opcode will be appended to
120 // if the opcode does not implicitly give the instruction size.
123 // of which contains the opcode 0x02 (ADD size 1). Because that was the
124 // most recently added opcode, last_opcode_index_ has the value 10.
126 // The function will replace the old opcode 0x02 with the double-instruction
127 // opcode 0xA3 (ADD size 1 + COPY size 4 mode 0).
132 // from the opcode. If a custom code table were used that did not have
134 // double-instruction opcode (say, COPY size 0 mode 0 + ADD size 0)
138 // [Compound Opcode][Size of COPY][Address of COPY][Size of ADD]
173 // Try finding a compound opcode with size 0.
186 OpcodeOrNone opcode = kNoOpcode;
188 opcode =
192 if (opcode != kNoOpcode) {
193 instructions_and_sizes_.push_back(static_cast<char>(opcode));
198 // There should always be an opcode with size 0.
199 opcode = instruction_map_->LookupFirstOpcode(inst, 0, mode);
200 if (opcode == kNoOpcode) {
201 LOG(DFATAL) << "No matching opcode found for inst " << inst
205 instructions_and_sizes_.push_back(static_cast<char>(opcode));