From 675e0509d0bbdd80c93255780d26977ebc9023ea Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sun, 19 Sep 1999 19:19:50 +0000 Subject: [PATCH] * hppa.h (pa_opcodes): Add long offset double word load/store instructions. --- include/opcode/ChangeLog | 3 +++ include/opcode/hppa.h | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index ea44508f7..0aa1d7947 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,5 +1,8 @@ Sun Sep 19 10:40:59 1999 Jeffrey A Law (law@cygnus.com) + * hppa.h (pa_opcodes): Add long offset double word load/store + instructions. + * hppa.h (pa_opcodes): Add FLAG_STRICT variants of FP loads and stores. diff --git a/include/opcode/hppa.h b/include/opcode/hppa.h index 1329831a2..da914e558 100644 --- a/include/opcode/hppa.h +++ b/include/opcode/hppa.h @@ -70,9 +70,9 @@ struct pa_opcode In the args field, the following characters are unused: - ' "# & - / 34 6789:;< > @' - ' C JK XY [\] ' - ' de y } ' + ' " & - / 34 6789:;< > @' + ' C JK Y [\] ' + ' e y } ' Here are all the characters: @@ -151,11 +151,15 @@ Also these: _ Destination format completer for fcnv h cbit for fcmp = gfx tests for ftest + d 14bit offset for single precision FP long load/store. + # 14bit offset for double precision FP load long/store. Completer operands all have 'c' as the prefix: cx indexed load completer. cm short load and store completer. + cq short load and store completer (like cm, but inserted into a + different location in the target instruction). cs store bytes short completer. cw read/write completer for PROBE @@ -282,6 +286,8 @@ static const struct pa_opcode pa_opcodes[] = { "ldd", 0x0c0000c0, 0xfc001fc0, "cxx(b),t", pa20, FLAG_STRICT}, { "ldd", 0x0c0010c0, 0xfc001fc0, "cm5(s,b),t", pa20, FLAG_STRICT}, { "ldd", 0x0c0010c0, 0xfc001fc0, "cm5(b),t", pa20, FLAG_STRICT}, +{ "ldd", 0x50000000, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT}, +{ "ldd", 0x50000000, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT}, { "ldw", 0x0c000080, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT}, { "ldw", 0x0c000080, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT}, { "ldw", 0x0c001080, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT}, @@ -302,6 +308,8 @@ static const struct pa_opcode pa_opcodes[] = { "ldb", 0x40000000, 0xfc000000, "j(b),x", pa10}, { "std", 0x0c0012c0, 0xfc001fc0, "cmx,V(s,b)", pa20, FLAG_STRICT}, { "std", 0x0c0012c0, 0xfc001fc0, "cmx,V(b)", pa20, FLAG_STRICT}, +{ "std", 0x70000000, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT}, +{ "std", 0x70000000, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT}, { "stw", 0x0c001280, 0xfc001fc0, "cmx,V(s,b)", pa10, FLAG_STRICT}, { "stw", 0x0c001280, 0xfc001fc0, "cmx,V(b)", pa10, FLAG_STRICT}, { "stw", 0x68000000, 0xfc000000, "x,j(s,b)", pa10}, @@ -622,6 +630,8 @@ static const struct pa_opcode pa_opcodes[] = { "fldd", 0x2c000000, 0xfc001fc0, "cxx(b),ft", pa10, FLAG_STRICT}, { "fldd", 0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, FLAG_STRICT}, { "fldd", 0x2c001000, 0xfc001fc0, "cm5(b),ft", pa10, FLAG_STRICT}, +{ "fldd", 0x50000002, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT}, +{ "fldd", 0x50000002, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT}, { "fstw", 0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, FLAG_STRICT}, { "fstw", 0x24000200, 0xfc001f80, "cxfT,x(b)", pa10, FLAG_STRICT}, { "fstw", 0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, FLAG_STRICT}, @@ -630,6 +640,8 @@ static const struct pa_opcode pa_opcodes[] = { "fstd", 0x2c000200, 0xfc001fc0, "cxft,x(b)", pa10, FLAG_STRICT}, { "fstd", 0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, FLAG_STRICT}, { "fstd", 0x2c001200, 0xfc001fc0, "cmft,5(b)", pa10, FLAG_STRICT}, +{ "fstd", 0x70000002, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT}, +{ "fstd", 0x70000002, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT}, { "fldwx", 0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10}, { "fldwx", 0x24000000, 0xfc001f80, "cxx(b),fT", pa10}, { "flddx", 0x2c000000, 0xfc001fc0, "cxx(s,b),ft", pa10}, -- 2.43.5