mirror of https://github.com/icedland/iced.git
Store regs in `int` and return only low 16 bits (opcode bits)
This commit is contained in:
parent
01bceb16f2
commit
b611eebc5c
|
@ -10,10 +10,10 @@ import com.github.icedland.iced.x86.internal.IcedConstants;
|
|||
*/
|
||||
public final class RegisterInfo {
|
||||
static final RegisterInfo[] infos = createRegisterInfos();
|
||||
private final byte register;
|
||||
private final byte baseRegister;
|
||||
private final byte fullRegister;
|
||||
private final short size;
|
||||
private final int register;
|
||||
private final int baseRegister;
|
||||
private final int fullRegister;
|
||||
private final int size;
|
||||
|
||||
private static RegisterInfo[] createRegisterInfos() {
|
||||
RegisterInfo[] regInfos = new RegisterInfo[IcedConstants.REGISTER_ENUM_COUNT];
|
||||
|
@ -117,14 +117,9 @@ public final class RegisterInfo {
|
|||
}
|
||||
|
||||
private RegisterInfo(int register, int baseRegister, int fullRegister, int size) {
|
||||
assert baseRegister <= register : baseRegister;
|
||||
assert register >= 0 && register <= 0xFF : register;
|
||||
this.register = (byte)register;
|
||||
assert baseRegister >= 0 && baseRegister <= 0xFF : baseRegister;
|
||||
this.baseRegister = (byte)baseRegister;
|
||||
assert fullRegister >= 0 && fullRegister <= 0xFF : fullRegister;
|
||||
this.fullRegister = (byte)fullRegister;
|
||||
assert size >= 0 && size <= 0xFFFF : size;
|
||||
this.size = (short)size;
|
||||
this.register = register;
|
||||
this.baseRegister = baseRegister;
|
||||
this.fullRegister = fullRegister;
|
||||
this.size = size;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1126,7 +1126,7 @@ public final class OpCodeInfo {
|
|||
* ({@link Code#SUB_R8_RM8}, {@link Code#CVTPI2PS_XMM_MMM64}, etc).
|
||||
*/
|
||||
public int getOpCode() {
|
||||
return encFlags2 >>> EncFlags2.OP_CODE_SHIFT;
|
||||
return (encFlags2 >>> EncFlags2.OP_CODE_SHIFT) & 0xFFFF;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue