diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2008-10-12 15:43:35 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2008-10-12 15:43:35 -0700 |
commit | 4aa18aa80022d9e4125faab8ff1f5123e159137d (patch) | |
tree | 015d03ce7a74fe09c857d61a5c604cc1638b744d /src/arch/x86 | |
parent | 77c0e1d1102af4c023bcd4609022b1600cadfea5 (diff) | |
download | gem5-4aa18aa80022d9e4125faab8ff1f5123e159137d.tar.xz |
X86: Make Br never report itself as the last microop.
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/isa/microops/seqop.isa | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/arch/x86/isa/microops/seqop.isa b/src/arch/x86/isa/microops/seqop.isa index 821afbe83..603f4458b 100644 --- a/src/arch/x86/isa/microops/seqop.isa +++ b/src/arch/x86/isa/microops/seqop.isa @@ -169,8 +169,7 @@ output decoder {{ }}; let {{ - class Br(X86Microop): - className = "MicroBranch" + class SeqOp(X86Microop): def __init__(self, target, flags=None): self.target = target if flags: @@ -190,6 +189,15 @@ let {{ "cc" : self.cond} return allocator + class Br(SeqOp): + className = "MicroBranch" + + def getAllocator(self, *microFlags): + (is_micro, is_delayed, is_first, is_last) = microFlags + is_last = False + microFlags = (is_micro, is_delayed, is_first, is_last) + return super(Br, self).getAllocator(*microFlags) + iop = InstObjParams("br", "MicroBranchFlags", "SeqOpBase", {"code": "nuIP = target", "else_code": "nuIP = nuIP", |