aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-05-08 21:08:20 +0000
committerRichard Stallman <rms@gnu.org>1993-05-08 21:08:20 +0000
commit06d53f195f054afe29525f556f26a021a28fde98 (patch)
treef61c9b517bb37fc82d0a6d885677b068ffa9b49f /gcc
parente9575b51d7a117624f2c67434ebd8e88aead9bc4 (diff)
downloadgcc-06d53f195f054afe29525f556f26a021a28fde98.zip
gcc-06d53f195f054afe29525f556f26a021a28fde98.tar.gz
gcc-06d53f195f054afe29525f556f26a021a28fde98.tar.bz2
(HARD_REGNO_MODE_OK): Properly check for floating-point registers.
Register 16 is AP and not floating. From-SVN: r4387
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/sequent.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/gcc/config/i386/sequent.h b/gcc/config/i386/sequent.h
index 004d3d1..5604347 100644
--- a/gcc/config/i386/sequent.h
+++ b/gcc/config/i386/sequent.h
@@ -73,6 +73,20 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
((n) < 3 ? (n) : (n) < 6 ? (n) + 2 \
: (n) == 6 ? 15 : (n) == 7 ? 14 : 3)
+/* malcolmp@hydra.maths.unsw.EDU.AU says these two definitions
+ fix trouble in dbx. */
+#undef DBX_OUTPUT_LBRAC
+#define DBX_OUTPUT_LBRAC(file,name) \
+ fprintf (asmfile, "%s %d,0,%d,", ASM_STABN_OP, N_LBRAC, depth); \
+ assemble_name (asmfile, buf); \
+ fprintf (asmfile, "\n");
+
+#undef DBX_OUTPUT_RBRAC
+#define DBX_OUTPUT_RBRAC(file,name) \
+ fprintf (asmfile, "%s %d,0,%d,", ASM_STABN_OP, N_RBRAC, depth); \
+ assemble_name (asmfile, buf); \
+ fprintf (asmfile, "\n");
+
/* Prevent anything from being allocated in the register pair cx/bx,
since that would confuse GDB. */
@@ -80,8 +94,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
(((REGNO) < 2 ? 1 \
: (REGNO) < 4 ? 1 \
- : (REGNO) >= 8 ? (GET_MODE_CLASS (MODE) == MODE_FLOAT \
- || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
+ : FP_REGNO_P (REGNO) ? (GET_MODE_CLASS (MODE) == MODE_FLOAT \
+ || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
: (MODE) != QImode) \
&& ! (REGNO == 2 && GET_MODE_UNIT_SIZE (MODE) > 4))