diff options
author | Frank Ch. Eigler <fche@redhat.com> | 1998-06-18 15:11:28 +0000 |
---|---|---|
committer | Frank Ch. Eigler <fche@redhat.com> | 1998-06-18 15:11:28 +0000 |
commit | 5630c289dce78fc6ba309def1ce6aa47858848e8 (patch) | |
tree | 3bbe34aa578827a56f67af11f6666dd8d19309b5 /sim/mips | |
parent | 3bb1e046d02b64c195d3dbe9c61947a41d5099bd (diff) | |
download | gdb-5630c289dce78fc6ba309def1ce6aa47858848e8.zip gdb-5630c289dce78fc6ba309def1ce6aa47858848e8.tar.gz 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')
-rw-r--r-- | sim/mips/mips.igen | 65 |
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 |