diff options
author | Korey Sewell <ksewell@umich.edu> | 2011-06-09 01:34:06 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2011-06-09 01:34:06 -0400 |
commit | 1a451cd2c5ec20c27c39a1cd3e3b5422c2b4f679 (patch) | |
tree | bcd4c037bb4f6822d5b1e3112ebca7060e3dbcae /src/arch/sparc/isa/formats/branch.isa | |
parent | 67bb3070032fcb944a63aabb4ecfff692840e7bf (diff) | |
download | gem5-1a451cd2c5ec20c27c39a1cd3e3b5422c2b4f679.tar.xz |
sparc: compilation fixes for inorder
Add a few constants and functions that the InOrder model wants for SPARC.
* * *
sparc: add eaComp function
InOrder separates the address generation from the actual access so give
Sparc that functionality
* * *
sparc: add control flags for branches
branch predictors and other cpu model functions need to know specific information
about branches, so add the necessary flags here
Diffstat (limited to 'src/arch/sparc/isa/formats/branch.isa')
-rw-r--r-- | src/arch/sparc/isa/formats/branch.isa | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/arch/sparc/isa/formats/branch.isa b/src/arch/sparc/isa/formats/branch.isa index bf2d9a748..014c0d486 100644 --- a/src/arch/sparc/isa/formats/branch.isa +++ b/src/arch/sparc/isa/formats/branch.isa @@ -262,6 +262,9 @@ def format Branch(code, *opt_flags) {{ let {{ def doBranch(name, Name, base, cond, code, annul_code, fail, annul_fail, opt_flags): + if "IsIndirectControl" not in opt_flags: + opt_flags += ('IsDirectControl', ) + iop = InstObjParams(name, Name, base, {"code": code, "fail": fail, @@ -289,12 +292,14 @@ let {{ return (header_output, decoder_output, exec_output, decode_block) def doCondBranch(name, Name, base, cond, code, opt_flags): + opt_flags += ('IsCondControl', ) return doBranch(name, Name, base, cond, code, code, 'NNPC = NNPC; NPC = NPC;\n', 'NNPC = NPC + 8; NPC = NPC + 4;\n', opt_flags) def doUncondBranch(name, Name, base, code, annul_code, opt_flags): + opt_flags += ('IsUncondControl', ) return doBranch(name, Name, base, "true", code, annul_code, ";", ";", opt_flags) |