aboutsummaryrefslogtreecommitdiff
path: root/sim/mips/mips.igen
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>1998-06-18 15:11:28 +0000
committerFrank Ch. Eigler <fche@redhat.com>1998-06-18 15:11:28 +0000
commit5630c289dce78fc6ba309def1ce6aa47858848e8 (patch)
tree3bbe34aa578827a56f67af11f6666dd8d19309b5 /sim/mips/mips.igen
parent3bb1e046d02b64c195d3dbe9c61947a41d5099bd (diff)
downloadfsf-binutils-gdb-5630c289dce78fc6ba309def1ce6aa47858848e8.zip
fsf-binutils-gdb-5630c289dce78fc6ba309def1ce6aa47858848e8.tar.gz
fsf-binutils-gdb-5630c289dce78fc6ba309def1ce6aa47858848e8.tar.bz2
* Adapt to changed R5900 SQC2 opcode.
Thu Jun 18 17:48:01 1998 Frank Ch. Eigler <fche@cygnus.com> * mips.igen (SDC2): Removed R5900 alternative. * r5900.igen (SQC2): Updated bit pattern to match changed R5900 specs.
Diffstat (limited to 'sim/mips/mips.igen')
-rw-r--r--sim/mips/mips.igen65
1 files changed, 46 insertions, 19 deletions
diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen
index 4efde4a..3e48d7a 100644
--- a/sim/mips/mips.igen
+++ b/sim/mips/mips.igen
@@ -2815,9 +2815,6 @@
// start-sanitize-vr5400
*vr5400:
// end-sanitize-vr5400
-// start-sanitize-r5900
-*r5900:
-// end-sanitize-r5900
// start-sanitize-tx19
*tx19:
// end-sanitize-tx19
@@ -5375,10 +5372,17 @@
// start-sanitize-sky
{
#ifdef TARGET_SKY
- address_word offset = EXTEND16 (OFFSET) << 2;
- extern int sky_cpcond0;
- if (sky_cpcond0 == 0)
- DELAY_SLOT (NIA + offset);
+ extern int sky_cpcond0A;
+ if (sky_cpcond0A == 0)
+ {
+ address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+ TRACE_BRANCH_RESULT (dest);
+ DELAY_SLOT (dest);
+ }
+ else
+ {
+ TRACE_BRANCH_RESULT (NIA);
+ }
#endif
}
// end-sanitize-sky
@@ -5400,10 +5404,18 @@
// start-sanitize-sky
{
#ifdef TARGET_SKY
- address_word offset = EXTEND16 (OFFSET) << 2;
- extern int sky_cpcond0;
- if (sky_cpcond0 == 0)
- DELAY_SLOT (NIA + offset);
+ extern int sky_cpcond0A;
+ if (sky_cpcond0A == 0)
+ {
+ address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+ TRACE_BRANCH_RESULT (dest);
+ DELAY_SLOT (dest);
+ }
+ else
+ {
+ TRACE_BRANCH_RESULT (0);
+ NULLIFY_NEXT_INSTRUCTION ();
+ }
#endif
}
// end-sanitize-sky
@@ -5418,10 +5430,17 @@
// start-sanitize-sky
{
#ifdef TARGET_SKY
- address_word offset = EXTEND16 (OFFSET) << 2;
- extern int sky_cpcond0;
- if (sky_cpcond0 != 0)
- DELAY_SLOT (NIA + offset);
+ extern int sky_cpcond0A;
+ if (sky_cpcond0A != 0)
+ {
+ address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+ TRACE_BRANCH_RESULT (dest);
+ DELAY_SLOT (dest);
+ }
+ else
+ {
+ TRACE_BRANCH_RESULT (NIA);
+ }
#endif
}
// end-sanitize-sky
@@ -5444,10 +5463,18 @@
// start-sanitize-sky
{
#ifdef TARGET_SKY
- address_word offset = EXTEND16 (OFFSET) << 2;
- extern int sky_cpcond0;
- if (sky_cpcond0 != 0)
- DELAY_SLOT (NIA + offset);
+ extern int sky_cpcond0A;
+ if (sky_cpcond0A != 0)
+ {
+ address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+ TRACE_BRANCH_RESULT (dest);
+ DELAY_SLOT (dest);
+ }
+ else
+ {
+ TRACE_BRANCH_RESULT (0);
+ NULLIFY_NEXT_INSTRUCTION ();
+ }
#endif
}
// end-sanitize-sky