mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-04 21:31:03 +00:00
Fixed handling of immediate operand sizes, which
weren't properly reflecting the OperandSize attribute of the instruction leading to improper decoding of certain instructions with the 66H prefix. Also added a test case for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117084 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2172f3cd97
commit
751752e7ca
@ -405,7 +405,7 @@ static int readPrefixes(struct InternalInstruction* insn) {
|
||||
insn->registerSize = (hasOpSize ? 2 : 4);
|
||||
insn->addressSize = (hasAdSize ? 2 : 4);
|
||||
insn->displacementSize = (hasAdSize ? 2 : 4);
|
||||
insn->immediateSize = (hasAdSize ? 2 : 4);
|
||||
insn->immediateSize = (hasOpSize ? 2 : 4);
|
||||
} else if (insn->mode == MODE_64BIT) {
|
||||
if (insn->rexPrefix && wFromREX(insn->rexPrefix)) {
|
||||
insn->registerSize = 8;
|
||||
|
@ -63,3 +63,6 @@
|
||||
|
||||
# CHECK: enter $1, $2
|
||||
0xc8 0x01 0x00 0x02
|
||||
|
||||
# CHECK: movw $47416, -66(%rbp)
|
||||
0x66 0xc7 0x45 0xbe 0x38 0xb9
|
||||
|
Loading…
x
Reference in New Issue
Block a user