summaryrefslogtreecommitdiff
path: root/src/arch/arm/isa/insts/ldr.isa
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/arm/isa/insts/ldr.isa')
-rw-r--r--src/arch/arm/isa/insts/ldr.isa7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/arch/arm/isa/insts/ldr.isa b/src/arch/arm/isa/insts/ldr.isa
index 2e45f2875..bfa94103f 100644
--- a/src/arch/arm/isa/insts/ldr.isa
+++ b/src/arch/arm/isa/insts/ldr.isa
@@ -58,6 +58,7 @@ let {{
self.sign = sign
self.user = user
self.flavor = flavor
+ self.rasPop = False
if self.add:
self.op = " +"
@@ -77,7 +78,7 @@ let {{
newDecoder,
newExec) = self.fillTemplates(self.name, self.Name, codeBlobs,
self.memFlags, instFlags, base,
- wbDecl, pcDecl)
+ wbDecl, pcDecl, self.rasPop)
header_output += newHeader
decoder_output += newDecoder
@@ -128,6 +129,10 @@ let {{
else:
self.wbDecl = "MicroSubiUop(machInst, base, base, imm);"
+ if self.add and self.post and self.writeback and not self.sign and \
+ not self.user and self.size == 4:
+ self.rasPop = True
+
class LoadRegInst(LoadInst):
def __init__(self, *args, **kargs):
super(LoadRegInst, self).__init__(*args, **kargs)