From 4aa18aa80022d9e4125faab8ff1f5123e159137d Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 12 Oct 2008 15:43:35 -0700 Subject: X86: Make Br never report itself as the last microop. --- src/arch/x86/isa/microops/seqop.isa | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/arch/x86') 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", -- cgit v1.2.3