From afbf211f5a95b53762a4640af859e67b85e365d7 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Thu, 25 Nov 1999 03:27:35 +0000 Subject: [PATCH] * config/tc-hppa.c (pa_ip): Handle PA2.0 unit completers. Handle 'B' operand for PA2.0 bb instruction. --- gas/ChangeLog | 5 +++++ gas/config/tc-hppa.c | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 807af87ebc1..5b28623c8f7 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +Wed Nov 24 20:27:58 1999 Jeffrey A Law (law@cygnus.com) + + * config/tc-hppa.c (pa_ip): Handle PA2.0 unit completers. Handle + 'B' operand for PA2.0 bb instruction. + 1999-11-18 Nick Clifton * config/tc-mcore.h (TC_FORCE_RELOCATION): Define for Mcore-pe diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index d733577df9b..fe53273d9d5 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -2794,6 +2794,30 @@ pa_ip (str) flag = 1; s += 3; } + else if (strncasecmp (s, "swz", 3) == 0) + { + cmpltr = 1; + flag = 0; + s += 3; + } + else if (strncasecmp (s, "swc", 3) == 0) + { + cmpltr = 5; + flag = 0; + s += 3; + } + else if (strncasecmp (s, "nwz", 3) == 0) + { + cmpltr = 1; + flag = 1; + s += 3; + } + else if (strncasecmp (s, "nwc", 3) == 0) + { + cmpltr = 5; + flag = 1; + s += 3; + } /* ",*" is a valid condition. */ else if (*args != 'U') as_bad (_("Invalid Unit Instruction Condition.")); @@ -3307,6 +3331,20 @@ pa_ip (str) opcode |= (num & 0x20) << 6; INSERT_FIELD_AND_CONTINUE (opcode, num & 0x1f, 5); + /* Handle a 5 bit immediate at 10 with 'd' as the complement + of the high bit of the immediate. */ + case 'B': + num = pa_get_absolute_expression (&the_insn, &s); + if (strict && the_insn.exp.X_op != O_constant) + break; + s = expr_end; + CHECK_FIELD (num, 63, 0, strict); + if (num & 0x20) + ; + else + opcode |= (1 << 13); + INSERT_FIELD_AND_CONTINUE (opcode, num & 0x1f, 21); + /* Handle a 5 bit immediate at 10. */ case 'Q': num = pa_get_absolute_expression (&the_insn, &s); -- 2.30.2