[PATCH] D24938: [x86] Rewrite getAddressFromInstr helper function
Nikolai Bozhenov via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 24 05:15:44 PST 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL287873: [x86] Rewrite getAddressFromInstr helper function (authored by n.bozhenov).
Changed prior to commit:
https://reviews.llvm.org/D24938?vs=72617&id=79220#toc
Repository:
rL LLVM
https://reviews.llvm.org/D24938
Files:
llvm/trunk/lib/Target/X86/X86InstrBuilder.h
Index: llvm/trunk/lib/Target/X86/X86InstrBuilder.h
===================================================================
--- llvm/trunk/lib/Target/X86/X86InstrBuilder.h
+++ llvm/trunk/lib/Target/X86/X86InstrBuilder.h
@@ -90,29 +90,30 @@
/// Compute the addressing mode from an machine instruction starting with the
/// given operand.
-static inline X86AddressMode getAddressFromInstr(MachineInstr *MI,
+static inline X86AddressMode getAddressFromInstr(const MachineInstr *MI,
unsigned Operand) {
X86AddressMode AM;
- MachineOperand &Op = MI->getOperand(Operand);
- if (Op.isReg()) {
+ const MachineOperand &Op0 = MI->getOperand(Operand);
+ if (Op0.isReg()) {
AM.BaseType = X86AddressMode::RegBase;
- AM.Base.Reg = Op.getReg();
+ AM.Base.Reg = Op0.getReg();
} else {
AM.BaseType = X86AddressMode::FrameIndexBase;
- AM.Base.FrameIndex = Op.getIndex();
- }
- Op = MI->getOperand(Operand + 1);
- if (Op.isImm())
- AM.Scale = Op.getImm();
- Op = MI->getOperand(Operand + 2);
- if (Op.isImm())
- AM.IndexReg = Op.getImm();
- Op = MI->getOperand(Operand + 3);
- if (Op.isGlobal()) {
- AM.GV = Op.getGlobal();
- } else {
- AM.Disp = Op.getImm();
+ AM.Base.FrameIndex = Op0.getIndex();
}
+
+ const MachineOperand &Op1 = MI->getOperand(Operand + 1);
+ AM.Scale = Op1.getImm();
+
+ const MachineOperand &Op2 = MI->getOperand(Operand + 2);
+ AM.IndexReg = Op2.getReg();
+
+ const MachineOperand &Op3 = MI->getOperand(Operand + 3);
+ if (Op3.isGlobal())
+ AM.GV = Op3.getGlobal();
+ else
+ AM.Disp = Op3.getImm();
+
return AM;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24938.79220.patch
Type: text/x-patch
Size: 1642 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161124/d1ffbc52/attachment.bin>
More information about the llvm-commits
mailing list