aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
Diffstat (limited to 'sim')
-rw-r--r--sim/ChangeLog8
-rw-r--r--sim/sh/gencode.c48
2 files changed, 32 insertions, 24 deletions
diff --git a/sim/ChangeLog b/sim/ChangeLog
index 35bcfb5..f3bc71d 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,11 @@
+2003-01-23 Nick Clifton <nickc@redhat.com>
+
+ * Add sh2e support:
+
+ 2002-04-02 Alexandre Oliva <aoliva@redhat.com>
+
+ * sh/gencode.c: Replace sh3e with sh2e except in fsqrt.
+
2002-08-24 Geoffrey Keating <geoffk@redhat.com>
* MAINTAINERS: Update my email address.
diff --git a/sim/sh/gencode.c b/sim/sh/gencode.c
index 8e2445a..167fdd1 100644
--- a/sim/sh/gencode.c
+++ b/sim/sh/gencode.c
@@ -226,22 +226,22 @@ op tab[] =
"R[n] = (R[m] & 0xffff);",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fabs <FREG_N>", "1111nnnn01011101",
"FP_UNARY (n, fabs);",
"/* FIXME: FR(n) &= 0x7fffffff; */",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fadd <FREG_M>,<FREG_N>", "1111nnnnmmmm0000",
"FP_OP (n, +, m);",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fcmp/eq <FREG_M>,<FREG_N>", "1111nnnnmmmm0100",
"FP_CMP (n, ==, m);",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fcmp/gt <FREG_M>,<FREG_N>", "1111nnnnmmmm0101",
"FP_CMP (n, >, m);",
},
@@ -278,7 +278,7 @@ op tab[] =
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fdiv <FREG_M>,<FREG_N>", "1111nnnnmmmm0011",
"FP_OP (n, /, m);",
"/* FIXME: check for DP and (n & 1) == 0? */",
@@ -291,19 +291,19 @@ op tab[] =
"/* FIXME: check for DP and (n & 1) == 0? */",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fldi0 <FREG_N>", "1111nnnn10001101",
"SET_FR (n, (float)0.0);",
"/* FIXME: check for DP and (n & 1) == 0? */",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fldi1 <FREG_N>", "1111nnnn10011101",
"SET_FR (n, (float)1.0);",
"/* FIXME: check for DP and (n & 1) == 0? */",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "flds <FREG_N>,FPUL", "1111nnnn00011101",
" union",
" {",
@@ -314,7 +314,7 @@ op tab[] =
" FPUL = u.i;",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "float FPUL,<FREG_N>", "1111nnnn00101101",
/* sh4 */
"if (FPSCR_PR)",
@@ -325,13 +325,13 @@ op tab[] =
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmac <FREG_0>,<FREG_M>,<FREG_N>", "1111nnnnmmmm1110",
"SET_FR (n, FR(m) * FR(0) + FR(n));",
"/* FIXME: check for DP and (n & 1) == 0? */",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmov <FREG_M>,<FREG_N>", "1111nnnnmmmm1100",
/* sh4 */
"if (FPSCR_SZ) {",
@@ -345,7 +345,7 @@ op tab[] =
" SET_FR (n, FR (m));",
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmov.s <FREG_M>,@<REG_N>", "1111nnnnmmmm1010",
/* sh4 */
"if (FPSCR_SZ) {",
@@ -358,7 +358,7 @@ op tab[] =
" WLAT (R[n], FI(m));",
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmov.s @<REG_M>,<FREG_N>", "1111nnnnmmmm1000",
/* sh4 */
"if (FPSCR_SZ) {",
@@ -371,7 +371,7 @@ op tab[] =
" SET_FI(n, RLAT(R[m]));",
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmov.s @<REG_M>+,<FREG_N>", "1111nnnnmmmm1001",
/* sh4 */
"if (FPSCR_SZ) {",
@@ -386,7 +386,7 @@ op tab[] =
" R[m] += 4;",
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmov.s <FREG_M>,@-<REG_N>", "1111nnnnmmmm1011",
/* sh4 */
"if (FPSCR_SZ) {",
@@ -401,7 +401,7 @@ op tab[] =
" WLAT (R[n], FI(m));",
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmov.s @(R0,<REG_M>),<FREG_N>", "1111nnnnmmmm0110",
/* sh4 */
"if (FPSCR_SZ) {",
@@ -414,7 +414,7 @@ op tab[] =
" SET_FI(n, RLAT(R[0] + R[m]));",
"}",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fmov.s <FREG_M>,@(R0,<REG_N>)", "1111nnnnmmmm0111",
/* sh4 */
"if (FPSCR_SZ) {",
@@ -430,12 +430,12 @@ op tab[] =
/* sh4: See fmov instructions above for move to/from extended fp registers */
- /* sh3e */
+ /* sh2e */
{ "", "", "fmul <FREG_M>,<FREG_N>", "1111nnnnmmmm0010",
"FP_OP(n, *, m);",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fneg <FREG_N>", "1111nnnn01001101",
"FP_UNARY(n, -);",
},
@@ -455,12 +455,12 @@ op tab[] =
"FP_UNARY(n, sqrt);",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fsub <FREG_M>,<FREG_N>", "1111nnnnmmmm0001",
"FP_OP(n, -, m);",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "ftrc <FREG_N>, FPUL", "1111nnnn00111101",
/* sh4 */
"if (FPSCR_PR) {",
@@ -476,7 +476,7 @@ op tab[] =
" FPUL = (int)FR(n);",
},
- /* sh3e */
+ /* sh2e */
{ "", "", "fsts FPUL,<FREG_N>", "1111nnnn00001101",
" union",
" {",
@@ -561,11 +561,11 @@ op tab[] =
"SREG (m) = RLAT(R[n]);",
"R[n] += 4;",
},
- /* sh3e / sh-dsp (lds <REG_N>,DSR) */
+ /* sh2e / sh-dsp (lds <REG_N>,DSR) */
{ "", "n", "lds <REG_N>,FPSCR", "0100nnnn01101010",
"SET_FPSCR(R[n]);",
},
- /* sh3e / sh-dsp (lds.l @<REG_N>+,DSR) */
+ /* sh2e / sh-dsp (lds.l @<REG_N>+,DSR) */
{ "", "n", "lds.l @<REG_N>+,FPSCR", "0100nnnn01100110",
"MA (1);",
"SET_FPSCR (RLAT(R[n]));",