arch-x86: add unconditional tag to calls/returns
authorHoa Nguyen <hoanguyen@ucdavis.edu>
Fri, 12 Jul 2019 19:09:30 +0000 (12:09 -0700)
committerHoa Nguyen <hoanguyen@ucdavis.edu>
Tue, 16 Jul 2019 20:26:31 +0000 (20:26 +0000)
The branch predictor checks whether an instruction is unconditional
branch before adding it or checking the RAS. With this change, the
RAS is significantly more effective for short running x86 workloads.

Change-Id: I60af5f2f583b898ad77f79f4b0478d6cda88fc21
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19448
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
src/arch/x86/isa/macroop.isa

index 7d729618aaedb5a5eff41e7936ae8ec904d96c7e..99d76b48c3600167355cf050a452b00c7ef84f1b 100644 (file)
@@ -226,8 +226,10 @@ let {{
 
                     if self.function_call:
                         flags.append("IsCall")
+                        flags.append("IsUncondControl")
                     if self.function_return:
                         flags.append("IsReturn")
+                        flags.append("IsUncondControl")
                 else:
                     flags.append("IsDelayedCommit")