Lines Matching refs:opcode
84 Normally, to add an opcode/instruction, one only need to copy the whole
104 3. Fill out the mnemonic, opcode parameters parts
138 - a mapping between a hash value and an opcode description record for a given
142 The EncoderBase::opcodesHashMap is used for fast opcode selection basing on
156 As a grand total, the the whole operand's info needed for opcode selection
197 between a hash code value and opcode position for each given instruction.
199 Sounds a bit sophisticated, but in real is simple, the opcode gets selected
205 means 'invalid hash - no opcode with given characteristics'
242 The preparation is that opcode descriptions from the 'master' encoding table
244 First, the 'raw' opcode bytes are extracted. Here, 'raw' means the bytes that
247 'raw' bytes is counted. The fields are OpcodeDesc::opcode and
258 opcode column - for example, (MOVQ xmm64, xmm_m64). In this case, a fake
261 reflected in opcode column - for example, CALL cd or PUSH imm32.
337 // as they differ only in the opcode extention (/digit) number and
338 // in which number the opcode start from, the opcode definitions
343 // parameter is only due to ADD instruction, which requires an zero opcode
1010 //todo: this opcode's hash conflicts with IMUL r64,r_m64 - they're both 0.
1799 // last opcode ?
1800 if (oinfo.opcode[0] == OpcodeByteKind_LAST) {
1801 // mark the opcode 'last', exit
1826 for(; oinfo.opcode[j]; j++) {
1827 unsigned opcod = oinfo.opcode[j];
1830 odesc.opcode[odesc.opcode_len++] = (unsigned char)0x48;
1837 odesc.opcode[odesc.opcode_len++] = (unsigned char)lowByte;
1841 if (oinfo.opcode[j] != 0) {
1842 odesc.aux0 = oinfo.opcode[j];
1845 if(oinfo.opcode[j] != 0) {
1846 odesc.aux1 = oinfo.opcode[j];
1873 // The A3 opcode fits only opnds[0] - it's currently have
1915 // if the opcode is only for decoding info, then do not hash it.
1957 // as we're currently processing an opcode with memory part in operand,