summaryrefslogtreecommitdiff
path: root/gcc/config/m68k/lb1sf68.asm
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1996-05-23 23:01:28 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1996-05-23 23:01:28 +0000
commite1e477a18e87b3ab071166e7af9ef3e5a7e52dc5 (patch)
tree4489e7ef4ce84b643b42af54968a7b8f20b6116c /gcc/config/m68k/lb1sf68.asm
parent2ff72d514f0ca436bc78dc19e694f0aadcfeb390 (diff)
downloadgcc-e1e477a18e87b3ab071166e7af9ef3e5a7e52dc5.tar.gz
Construct exception masks at compile time
instead of or'ing in bits at run time. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12085 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/lb1sf68.asm')
-rw-r--r--gcc/config/m68k/lb1sf68.asm30
1 files changed, 10 insertions, 20 deletions
diff --git a/gcc/config/m68k/lb1sf68.asm b/gcc/config/m68k/lb1sf68.asm
index 2cdeb7088b5..e0eef090639 100644
--- a/gcc/config/m68k/lb1sf68.asm
+++ b/gcc/config/m68k/lb1sf68.asm
@@ -464,8 +464,7 @@ ROUND_TO_MINUS = 3 | round result towards minus infinity
Ld$den:
| Return and signal a denormalized number
orl d7,d0
- movew IMM (UNDERFLOW),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+UNDERFLOW),d7
movew IMM (DOUBLE_FLOAT),d6
jmp $_exception_handler
@@ -475,8 +474,7 @@ Ld$overflow:
movel IMM (0x7ff00000),d0
movel IMM (0),d1
orl d7,d0
- movew IMM (OVERFLOW),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+OVERFLOW),d7
movew IMM (DOUBLE_FLOAT),d6
jmp $_exception_handler
@@ -484,8 +482,7 @@ Ld$underflow:
| Return 0 and set the exception flags
movel IMM (0),d0
movel d0,d1
- movew IMM (UNDERFLOW),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+UNDERFLOW),d7
movew IMM (DOUBLE_FLOAT),d6
jmp $_exception_handler
@@ -493,8 +490,7 @@ Ld$inop:
| Return a quiet NaN and set the exception flags
movel IMM (QUIET_NaN),d0
movel d0,d1
- movew IMM (INVALID_OPERATION),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+INVALID_OPERATION),d7
movew IMM (DOUBLE_FLOAT),d6
jmp $_exception_handler
@@ -503,8 +499,7 @@ Ld$div$0:
movel IMM (0x7ff00000),d0
movel IMM (0),d1
orl d7,d0
- movew IMM (DIVIDE_BY_ZERO),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+DIVIDE_BY_ZERO),d7
movew IMM (DOUBLE_FLOAT),d6
jmp $_exception_handler
@@ -1719,8 +1714,7 @@ ROUND_TO_MINUS = 3 | round result towards minus infinity
Lf$den:
| Return and signal a denormalized number
orl d7,d0
- movew IMM (UNDERFLOW),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+UNDERFLOW),d7
movew IMM (SINGLE_FLOAT),d6
jmp $_exception_handler
@@ -1729,24 +1723,21 @@ Lf$overflow:
| Return a properly signed INFINITY and set the exception flags
movel IMM (INFINITY),d0
orl d7,d0
- movew IMM (OVERFLOW),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+OVERFLOW),d7
movew IMM (SINGLE_FLOAT),d6
jmp $_exception_handler
Lf$underflow:
| Return 0 and set the exception flags
movel IMM (0),d0
- movew IMM (UNDERFLOW),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+UNDERFLOW),d7
movew IMM (SINGLE_FLOAT),d6
jmp $_exception_handler
Lf$inop:
| Return a quiet NaN and set the exception flags
movel IMM (QUIET_NaN),d0
- movew IMM (INVALID_OPERATION),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+INVALID_OPERATION),d7
movew IMM (SINGLE_FLOAT),d6
jmp $_exception_handler
@@ -1754,8 +1745,7 @@ Lf$div$0:
| Return a properly signed INFINITY and set the exception flags
movel IMM (INFINITY),d0
orl d7,d0
- movew IMM (DIVIDE_BY_ZERO),d7
- orw IMM (INEXACT_RESULT),d7
+ movew IMM (INEXACT_RESULT+DIVIDE_BY_ZERO),d7
movew IMM (SINGLE_FLOAT),d6
jmp $_exception_handler