Fixes to edis that mark x86 call targets as

memory operands rather than immediate operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102217 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Sean Callanan
2010-04-23 22:17:17 +00:00
parent 56dda57679
commit a0f914b6c1
2 changed files with 5 additions and 2 deletions

View File

@@ -233,6 +233,8 @@ int EDOperand::isMemory() {
default: default:
return 0; return 0;
case kOperandTypeX86Memory: case kOperandTypeX86Memory:
case kOperandTypeX86PCRelative:
case kOperandTypeX86EffectiveAddress:
case kOperandTypeARMSoReg: case kOperandTypeARMSoReg:
case kOperandTypeARMSoImm: case kOperandTypeARMSoImm:
case kOperandTypeARMAddrMode2: case kOperandTypeARMAddrMode2:
@@ -243,6 +245,7 @@ int EDOperand::isMemory() {
case kOperandTypeARMAddrMode5: case kOperandTypeARMAddrMode5:
case kOperandTypeARMAddrMode6: case kOperandTypeARMAddrMode6:
case kOperandTypeARMAddrModePC: case kOperandTypeARMAddrModePC:
case kOperandTypeARMBranchTarget:
case kOperandTypeThumbAddrModeS1: case kOperandTypeThumbAddrModeS1:
case kOperandTypeThumbAddrModeS2: case kOperandTypeThumbAddrModeS2:
case kOperandTypeThumbAddrModeS4: case kOperandTypeThumbAddrModeS4:

View File

@@ -316,12 +316,10 @@ static int X86TypeFromOpName(LiteralConstantEmitter *type,
IMM("i16imm"); IMM("i16imm");
IMM("i16i8imm"); IMM("i16i8imm");
IMM("i32imm"); IMM("i32imm");
IMM("i32imm_pcrel");
IMM("i32i8imm"); IMM("i32i8imm");
IMM("i64imm"); IMM("i64imm");
IMM("i64i8imm"); IMM("i64i8imm");
IMM("i64i32imm"); IMM("i64i32imm");
IMM("i64i32imm_pcrel");
IMM("SSECC"); IMM("SSECC");
// all R, I, R, I, R // all R, I, R, I, R
@@ -350,6 +348,8 @@ static int X86TypeFromOpName(LiteralConstantEmitter *type,
LEA("lea64mem"); LEA("lea64mem");
// all I // all I
PCR("i32imm_pcrel");
PCR("i64i32imm_pcrel");
PCR("brtarget8"); PCR("brtarget8");
PCR("offset8"); PCR("offset8");
PCR("offset16"); PCR("offset16");