From 26cbfa82ad8efb59a6c5420ee5b25043f3c69cea Mon Sep 17 00:00:00 2001 From: Dave Anglin Date: Sun, 14 Oct 2012 23:27:38 +0000 Subject: [PATCH] * config/tc-hppa.c (pa_ip): Reject double floating point stores and loads that reference the right half of a floating point register. --- gas/ChangeLog | 5 +++++ gas/config/tc-hppa.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 0fb9286..376869e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2012-10-14 John David Anglin + + * config/tc-hppa.c (pa_ip): Reject double floating point stores and + loads that reference the right half of a floating point register. + 2012-10-13 John David Anglin * config/tc-hppa.c (pa_ip): Limit unit conditions for uxor to those diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 6411e36..16192d8 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -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); -- 2.7.4