summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/microops/seqop.isa
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2011-02-06 22:14:16 -0800
committerBrad Beckmann <Brad.Beckmann@amd.com>2011-02-06 22:14:16 -0800
commitafd754dc0d644f989e8aa00884203ce0e4143d47 (patch)
tree11118f79871e3d11a6fa3129abb3e527f801bb61 /src/arch/x86/isa/microops/seqop.isa
parent55df9e348c98f25006ac8a95d11bb2cc6b0fdde7 (diff)
downloadgem5-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.isa13
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)