diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMFastISel.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMFastISel.cpp b/lib/Target/ARM/ARMFastISel.cpp index 719cf5a..c991c4e 100644 --- a/lib/Target/ARM/ARMFastISel.cpp +++ b/lib/Target/ARM/ARMFastISel.cpp @@ -647,8 +647,7 @@ bool ARMFastISel::ARMComputeAddress(const Value *Obj, Address &Addr) { break; } case Instruction::GetElementPtr: { - int SavedOffset = Addr.Offset; - unsigned SavedBase = Addr.Base.Reg; + Address SavedAddr = Addr; int TmpOffset = Addr.Offset; // Iterate through the GEP folding the constants into offsets where @@ -689,8 +688,7 @@ bool ARMFastISel::ARMComputeAddress(const Value *Obj, Address &Addr) { if (ARMComputeAddress(U->getOperand(0), Addr)) return true; // We failed, restore everything and try the other options. - Addr.Offset = SavedOffset; - Addr.Base.Reg = SavedBase; + Addr = SavedAddr; unsupported_gep: break; |