summaryrefslogtreecommitdiff
path: root/src/arch/sparc/isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2011-01-15 15:30:17 -0800
committerGabe Black <gblack@eecs.umich.edu>2011-01-15 15:30:17 -0800
commit371603f12c901df748bdb9d75ea10660bc876e1f (patch)
tree0b095aa56378e128f191fa172cbcdc80cfb0035d /src/arch/sparc/isa
parentbec0103bb41463b81456f5ab5ac35362feb561b1 (diff)
downloadgem5-371603f12c901df748bdb9d75ea10660bc876e1f.tar.xz
SPARC: Adjust the "call" instruction so R15 doesn't get marked as a source.
Diffstat (limited to 'src/arch/sparc/isa')
-rw-r--r--src/arch/sparc/isa/decoder.isa8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/arch/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa
index e1d4a8fbd..5ca015a8f 100644
--- a/src/arch/sparc/isa/decoder.isa
+++ b/src/arch/sparc/isa/decoder.isa
@@ -138,11 +138,9 @@ decode OP default Unknown::unknown()
}
}
0x1: BranchN::call(30, {{
- if (Pstate<3:>)
- R15 = (PC)<31:0>;
- else
- R15 = PC;
- NNPC = R15 + disp;
+ IntReg midVal;
+ R15 = midVal = (Pstate<3:> ? (PC)<31:0> : PC);
+ NNPC = midVal + disp;
}});
0x2: decode OP3 {
format IntOp {