aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@act-europe.fr>2004-09-28 13:40:27 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2004-09-28 11:40:27 +0000
commitecaa611b36e437b946d7192500a6c5dcdb9d328d (patch)
tree4dd3fc9de0e107c420e22aac1dfedf03b6fd740b /gcc
parent95b88040e291954a8c18051e8167cce22bda804a (diff)
downloadgcc-ecaa611b36e437b946d7192500a6c5dcdb9d328d.zip
gcc-ecaa611b36e437b946d7192500a6c5dcdb9d328d.tar.gz
gcc-ecaa611b36e437b946d7192500a6c5dcdb9d328d.tar.bz2
sparc.md (call_address_struct_value_sp32): Properly mask the immediate field of the 'unimp' instruction.
* config/sparc/sparc.md (call_address_struct_value_sp32): Properly mask the immediate field of the 'unimp' instruction. (call_symbolic_struct_value_sp32): Likewise. From-SVN: r88227
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sparc/sparc.md10
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 563ef3e..7247c38 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-09-28 Eric Botcazou <ebotcazou@act-europe.fr>
+
+ * config/sparc/sparc.md (call_address_struct_value_sp32):
+ Properly mask the immediate field of the 'unimp' instruction.
+ (call_symbolic_struct_value_sp32): Likewise.
+
2004-09-24 Ben Elliston <bje@au.ibm.com>
Steven Bosscher <stevenb@suse.de>
Andrew Pinski <pinskia@physics.uc.edu>
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index d91e51d..182afb9 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -7438,7 +7438,10 @@
(clobber (reg:SI 15))]
;;- Do not use operand 1 for most machines.
"! TARGET_ARCH64 && GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) > 0"
- "call\t%a0, %1\n\t nop\n\tunimp\t%2"
+{
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0xfff);
+ return "call\t%a0, %1\n\t nop\n\tunimp\t%2";
+}
[(set_attr "type" "call_no_delay_slot")
(set_attr "length" "3")])
@@ -7451,7 +7454,10 @@
(clobber (reg:SI 15))]
;;- Do not use operand 1 for most machines.
"! TARGET_ARCH64 && GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) > 0"
- "call\t%a0, %1\n\t nop\n\tunimp\t%2"
+{
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0xfff);
+ return "call\t%a0, %1\n\t nop\n\tunimp\t%2";
+}
[(set_attr "type" "call_no_delay_slot")
(set_attr "length" "3")])