diff options
author | Brad Beckmann <Brad.Beckmann@amd.com> | 2011-02-06 22:14:16 -0800 |
---|---|---|
committer | Brad Beckmann <Brad.Beckmann@amd.com> | 2011-02-06 22:14:16 -0800 |
commit | afd754dc0d644f989e8aa00884203ce0e4143d47 (patch) | |
tree | 11118f79871e3d11a6fa3129abb3e527f801bb61 /src/arch/x86/isa/microops/seqop.isa | |
parent | 55df9e348c98f25006ac8a95d11bb2cc6b0fdde7 (diff) | |
download | gem5-afd754dc0d644f989e8aa00884203ce0e4143d47.tar.xz |
x86: set IsCondControl flag for the appropriate microops
Diffstat (limited to 'src/arch/x86/isa/microops/seqop.isa')
-rw-r--r-- | src/arch/x86/isa/microops/seqop.isa | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/arch/x86/isa/microops/seqop.isa b/src/arch/x86/isa/microops/seqop.isa index 1b125ec9c..51d9776da 100644 --- a/src/arch/x86/isa/microops/seqop.isa +++ b/src/arch/x86/isa/microops/seqop.isa @@ -101,6 +101,7 @@ def template SeqOpConstructor {{ setFlags, _target, _cc) { %(constructor)s; + %(cond_control_flag_init)s; } }}; @@ -171,14 +172,16 @@ let {{ iop = InstObjParams("br", "MicroBranchFlags", "SeqOpBase", {"code": "nuIP = target;", "else_code": "nuIP = nuIP;", - "cond_test": "checkCondition(ccFlagBits, cc)"}) + "cond_test": "checkCondition(ccFlagBits, cc)", + "cond_control_flag_init": "flags[IsCondControl] = true"}) exec_output += SeqOpExecute.subst(iop) header_output += SeqOpDeclare.subst(iop) decoder_output += SeqOpConstructor.subst(iop) iop = InstObjParams("br", "MicroBranch", "SeqOpBase", {"code": "nuIP = target;", "else_code": "nuIP = nuIP;", - "cond_test": "true"}) + "cond_test": "true", + "cond_control_flag_init": ""}) exec_output += SeqOpExecute.subst(iop) header_output += SeqOpDeclare.subst(iop) decoder_output += SeqOpConstructor.subst(iop) @@ -186,13 +189,15 @@ let {{ iop = InstObjParams("eret", "EretFlags", "SeqOpBase", {"code": "", "else_code": "", - "cond_test": "checkCondition(ccFlagBits, cc)"}) + "cond_test": "checkCondition(ccFlagBits, cc)", + "cond_control_flag_init": ""}) exec_output += SeqOpExecute.subst(iop) header_output += SeqOpDeclare.subst(iop) decoder_output += SeqOpConstructor.subst(iop) iop = InstObjParams("eret", "Eret", "SeqOpBase", {"code": "", "else_code": "", - "cond_test": "true"}) + "cond_test": "true", + "cond_control_flag_init": ""}) exec_output += SeqOpExecute.subst(iop) header_output += SeqOpDeclare.subst(iop) decoder_output += SeqOpConstructor.subst(iop) |