summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/X86')
-rwxr-xr-xllvm/lib/Target/X86/X86ATTAsmPrinter.cpp23
-rwxr-xr-xllvm/lib/Target/X86/X86IntelAsmPrinter.cpp26
2 files changed, 17 insertions, 32 deletions
diff --git a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
index 38418b3593c..f8f54d434a1 100755
--- a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
@@ -196,25 +196,18 @@ void X86ATTAsmPrinter::printMemReference(const MachineInstr *MI, unsigned Op){
O << " + " << DispSpec.getImmedValue();
O << "]";
return;
- } else if (BaseReg.isConstantPoolIndex()) {
- O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_"
- << BaseReg.getConstantPoolIndex();
- if (forDarwin && TM.getRelocationModel() == Reloc::PIC)
- O << "-\"L" << getFunctionNumber() << "$pb\"";
- if (DispSpec.getImmedValue())
- O << "+" << DispSpec.getImmedValue();
- if (IndexReg.getReg()) {
- O << "(,";
- printOperand(MI, Op+2);
- if (ScaleVal != 1)
- O << "," << ScaleVal;
- O << ")";
- }
- return;
}
if (DispSpec.isGlobalAddress()) {
printOperand(MI, Op+3, "mem");
+ } else if (DispSpec.isConstantPoolIndex()) {
+ O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_"
+ << DispSpec.getConstantPoolIndex();
+ if (forDarwin && TM.getRelocationModel() == Reloc::PIC)
+ O << "-\"L" << getFunctionNumber() << "$pb\"";
+ if (DispSpec.getOffset())
+ O << "+" << DispSpec.getOffset();
+ return;
} else {
int DispVal = DispSpec.getImmedValue();
if (DispVal || (!IndexReg.getReg() && !BaseReg.getReg()))
diff --git a/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp b/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
index de503b924e4..7f4592bb5b5 100755
--- a/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
@@ -175,23 +175,6 @@ void X86IntelAsmPrinter::printMemReference(const MachineInstr *MI, unsigned Op){
O << " + " << DispSpec.getImmedValue();
O << "]";
return;
- } else if (BaseReg.isConstantPoolIndex()) {
- O << "[" << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_"
- << BaseReg.getConstantPoolIndex();
- if (forDarwin && TM.getRelocationModel() == Reloc::PIC)
- O << "-\"L" << getFunctionNumber() << "$pb\"";
-
- if (IndexReg.getReg()) {
- O << " + ";
- if (ScaleVal != 1)
- O << ScaleVal << "*";
- printOp(IndexReg);
- }
-
- if (DispSpec.getImmedValue())
- O << " + " << DispSpec.getImmedValue();
- O << "]";
- return;
}
O << "[";
@@ -213,6 +196,15 @@ void X86IntelAsmPrinter::printMemReference(const MachineInstr *MI, unsigned Op){
if (NeedPlus)
O << " + ";
printOp(DispSpec, "mem");
+ } else if (DispSpec.isConstantPoolIndex()) {
+ O << "[" << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_"
+ << DispSpec.getConstantPoolIndex();
+ if (forDarwin && TM.getRelocationModel() == Reloc::PIC)
+ O << "-\"L" << getFunctionNumber() << "$pb\"";
+ if (DispSpec.getOffset())
+ O << " + " << DispSpec.getOffset();
+ O << "]";
+ return;
} else {
int DispVal = DispSpec.getImmedValue();
if (DispVal || (!BaseReg.getReg() && !IndexReg.getReg())) {
OpenPOWER on IntegriCloud