This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[committed] Reject double floating point stores and loads that reference the right half of a floating point register
- From: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>
- To: binutils at sourceware dot org
- Cc: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Sun, 14 Oct 2012 19:41:48 -0400
- Subject: [committed] Reject double floating point stores and loads that reference the right half of a floating point register
- Reply-to: John David Anglin <dave dot anglin at nrc-cnrc dot gc dot ca>
This change makes gas behave in the same manner as the HP assembler.
It's not really safe to silently clobber the left half as was done
before.
Tested on hppa2.0w-hp-hpux11.11 and committed to trunk.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2012-10-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/tc-hppa.c (pa_ip): Reject double floating point stores and
loads that reference the right half of a floating point register.
Index: config/tc-hppa.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-hppa.c,v
retrieving revision 1.153
diff -u -3 -p -r1.153 tc-hppa.c
--- config/tc-hppa.c 13 Oct 2012 22:15:19 -0000 1.153
+++ config/tc-hppa.c 14 Oct 2012 00:27:03 -0000
@@ -5482,7 +5482,10 @@ pa_ip (char *str)
case 't':
if (!pa_parse_number (&s, 3))
break;
- num = (pa_number & ~FP_REG_RSEL) - FP_REG_BASE;
+ /* RSEL should not be set. */
+ if (pa_number & FP_REG_RSEL)
+ break;
+ num = pa_number - FP_REG_BASE;
CHECK_FIELD (num, 31, 0, 0);
INSERT_FIELD_AND_CONTINUE (opcode, num, 0);