ARM: Add IsSerializeAfter and IsNonSpeculative flag to the syscall instruction .
authorAli Saidi <Ali.Saidi@ARM.com>
Thu, 1 Dec 2011 08:15:22 +0000 (00:15 -0800)
committerAli Saidi <Ali.Saidi@ARM.com>
Thu, 1 Dec 2011 08:15:22 +0000 (00:15 -0800)
Squashes the subsequent instructions in O3 pipe after the service call, so that
they see the effect of the system call when re-executed. This isn't really an issue
with FS mode, but can show up in SE mode.

--HG--
extra : rebase_source : 613a69fe1d9834261e25a8cd340aa6b47578e1fe

src/arch/arm/isa/insts/misc.isa

index 2cf54fcdb3261378fd6b7311a3b88b985de89ccf..870f037d0321ce38a64bcd9ee9bf2339ab949e8b 100644 (file)
@@ -49,7 +49,8 @@ let {{
 
     svcIop = InstObjParams("svc", "Svc", "PredOp",
                            { "code": svcCode,
-                             "predicate_test": predicateTest }, ["IsSyscall"])
+                             "predicate_test": predicateTest },
+                           ["IsSyscall", "IsNonSpeculative", "IsSerializeAfter"])
     header_output = BasicDeclare.subst(svcIop)
     decoder_output = BasicConstructor.subst(svcIop)
     exec_output = PredOpExecute.subst(svcIop)