mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 22:07:58 +08:00
* Fix mask for PA2.0 floating point load instructions.
This commit is contained in:
@ -1,3 +1,13 @@
|
|||||||
|
start-sanitize-cygnus
|
||||||
|
Fri Jan 15 23:38:50 1999 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
|
* Fix mask for PA2.0 floating point load instructions.
|
||||||
|
|
||||||
|
Mon Jan 11 13:38:32 1999 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
|
* hppa.h (fcmp): Tweak PA2.0 support.
|
||||||
|
|
||||||
|
end-sanitize-cygnus
|
||||||
1999-01-05 Doug Evans <devans@casey.cygnus.com>
|
1999-01-05 Doug Evans <devans@casey.cygnus.com>
|
||||||
|
|
||||||
* cgen.h (CGEN_ATTR_VALUE_TYPE): New typedef.
|
* cgen.h (CGEN_ATTR_VALUE_TYPE): New typedef.
|
||||||
|
@ -64,9 +64,9 @@ struct pa_opcode
|
|||||||
|
|
||||||
In the args field, the following characters are unused:
|
In the args field, the following characters are unused:
|
||||||
|
|
||||||
' "#$% *+- ./ 3 :; = '
|
' "#$% *+- ./ :; '
|
||||||
' B L [\] _'
|
' [\] '
|
||||||
' e gh lm qr { } '
|
' { } '
|
||||||
|
|
||||||
Here are all the characters:
|
Here are all the characters:
|
||||||
|
|
||||||
@ -161,6 +161,29 @@ And these (PJH) for PA-89 F.P. registers and instructions:
|
|||||||
(very similar to 'F')
|
(very similar to 'F')
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
/* Letters for PA2.0 support
|
||||||
|
We don't want this code to leak just yet.
|
||||||
|
|
||||||
|
3 fmpyfadd/fmpynfadd ra operand
|
||||||
|
g Like C, but encoding of the modifier is different.
|
||||||
|
B Like C, but encoding of the modifier is different.
|
||||||
|
l Long displacement for PA2.0 fp loads and stores.
|
||||||
|
L Long displacement for PA2.0 fp loads and stores.
|
||||||
|
e FP register specification for PA2.0 large displacement loads and stores
|
||||||
|
h Offset into CA array for fcmp
|
||||||
|
m Offset into CA array for ftest
|
||||||
|
= Graphics conditions for ftest
|
||||||
|
q,_ source/dest floating point formats for fcnv
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
|
|
||||||
|
/* List of characters not to put a space after. Note that
|
||||||
|
"," is included, as the "spopN" operations use literal
|
||||||
|
commas in their completer sections. */
|
||||||
|
static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}";
|
||||||
|
|
||||||
/* The order of the opcodes in this table is significant:
|
/* The order of the opcodes in this table is significant:
|
||||||
|
|
||||||
* The assembler requires that all instances of the same mnemonic must be
|
* The assembler requires that all instances of the same mnemonic must be
|
||||||
@ -340,34 +363,34 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "lpa", 0x04001340, 0xfc003fc0, "Zx(b),t", pa10},
|
{ "lpa", 0x04001340, 0xfc003fc0, "Zx(b),t", pa10},
|
||||||
{ "lha", 0x04001300, 0xfc003fc0, "Zx(s,b),t", pa10},
|
{ "lha", 0x04001300, 0xfc003fc0, "Zx(s,b),t", pa10},
|
||||||
{ "lha", 0x04001300, 0xfc003fc0, "Zx(b),t", pa10},
|
{ "lha", 0x04001300, 0xfc003fc0, "Zx(b),t", pa10},
|
||||||
{ "lci", 0x04001300, 0xfc003fc0, "x(s,b),t", pa10},
|
{ "lci", 0x04001300, 0xfc003fe0, "x(s,b),t", pa10},
|
||||||
{ "lci", 0x04001300, 0xfc003fc0, "x(b),t", pa10},
|
{ "lci", 0x04001300, 0xfc003fe0, "x(b),t", pa10},
|
||||||
{ "pdtlb", 0x04001200, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "pdtlb", 0x04001200, 0xfc003fdf, "Zx(s,b)", pa10},
|
||||||
{ "pdtlb", 0x04001200, 0xfc003fdf, "Zx(b)", pa10},
|
{ "pdtlb", 0x04001200, 0xfc003fdf, "Zx(b)", pa10},
|
||||||
{ "pitlb", 0x04000200, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "pitlb", 0x04000200, 0xfc001fdf, "Zx(S,b)", pa10},
|
||||||
{ "pitlb", 0x04000200, 0xfc003fdf, "Zx(b)", pa10},
|
{ "pitlb", 0x04000200, 0xfc001fdf, "Zx(b)", pa10},
|
||||||
{ "pdtlbe", 0x04001240, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "pdtlbe", 0x04001240, 0xfc003fdf, "Zx(s,b)", pa10},
|
||||||
{ "pdtlbe", 0x04001240, 0xfc003fdf, "Zx(b)", pa10},
|
{ "pdtlbe", 0x04001240, 0xfc003fdf, "Zx(b)", pa10},
|
||||||
{ "pitlbe", 0x04000240, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "pitlbe", 0x04000240, 0xfc001fdf, "Zx(S,b)", pa10},
|
||||||
{ "pitlbe", 0x04000240, 0xfc003fdf, "Zx(b)", pa10},
|
{ "pitlbe", 0x04000240, 0xfc001fdf, "Zx(b)", pa10},
|
||||||
{ "idtlba", 0x04001040, 0xfc003fff, "x,(s,b)", pa10},
|
{ "idtlba", 0x04001040, 0xfc003fff, "x,(s,b)", pa10},
|
||||||
{ "idtlba", 0x04001040, 0xfc003fff, "x,(b)", pa10},
|
{ "idtlba", 0x04001040, 0xfc003fff, "x,(b)", pa10},
|
||||||
{ "iitlba", 0x04000040, 0xfc003fff, "x,(s,b)", pa10},
|
{ "iitlba", 0x04000040, 0xfc001fff, "x,(S,b)", pa10},
|
||||||
{ "iitlba", 0x04000040, 0xfc003fff, "x,(b)", pa10},
|
{ "iitlba", 0x04000040, 0xfc001fff, "x,(b)", pa10},
|
||||||
{ "idtlbp", 0x04001000, 0xfc003fff, "x,(s,b)", pa10},
|
{ "idtlbp", 0x04001000, 0xfc003fff, "x,(s,b)", pa10},
|
||||||
{ "idtlbp", 0x04001000, 0xfc003fff, "x,(b)", pa10},
|
{ "idtlbp", 0x04001000, 0xfc003fff, "x,(b)", pa10},
|
||||||
{ "iitlbp", 0x04000000, 0xfc003fff, "x,(s,b)", pa10},
|
{ "iitlbp", 0x04000000, 0xfc001fff, "x,(S,b)", pa10},
|
||||||
{ "iitlbp", 0x04000000, 0xfc003fff, "x,(b)", pa10},
|
{ "iitlbp", 0x04000000, 0xfc001fff, "x,(b)", pa10},
|
||||||
{ "pdc", 0x04001380, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "pdc", 0x04001380, 0xfc003fdf, "Zx(s,b)", pa10},
|
||||||
{ "pdc", 0x04001380, 0xfc003fdf, "Zx(b)", pa10},
|
{ "pdc", 0x04001380, 0xfc003fdf, "Zx(b)", pa10},
|
||||||
{ "fdc", 0x04001280, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "fdc", 0x04001280, 0xfc003fdf, "Zx(s,b)", pa10},
|
||||||
{ "fdc", 0x04001280, 0xfc003fdf, "Zx(b)", pa10},
|
{ "fdc", 0x04001280, 0xfc003fdf, "Zx(b)", pa10},
|
||||||
{ "fic", 0x04000280, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "fic", 0x04000280, 0xfc001fdf, "Zx(S,b)", pa10},
|
||||||
{ "fic", 0x04000280, 0xfc003fdf, "Zx(b)", pa10},
|
{ "fic", 0x04000280, 0xfc001fdf, "Zx(b)", pa10},
|
||||||
{ "fdce", 0x040012c0, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "fdce", 0x040012c0, 0xfc003fdf, "Zx(s,b)", pa10},
|
||||||
{ "fdce", 0x040012c0, 0xfc003fdf, "Zx(b)", pa10},
|
{ "fdce", 0x040012c0, 0xfc003fdf, "Zx(b)", pa10},
|
||||||
{ "fice", 0x040002c0, 0xfc003fdf, "Zx(s,b)", pa10},
|
{ "fice", 0x040002c0, 0xfc001fdf, "Zx(S,b)", pa10},
|
||||||
{ "fice", 0x040002c0, 0xfc003fdf, "Zx(b)", pa10},
|
{ "fice", 0x040002c0, 0xfc001fdf, "Zx(b)", pa10},
|
||||||
{ "diag", 0x14000000, 0xfc000000, "D", pa10},
|
{ "diag", 0x14000000, 0xfc000000, "D", pa10},
|
||||||
|
|
||||||
/* gfw and gfr are not in the HP PA 1.1 manual, but they are in either
|
/* gfw and gfr are not in the HP PA 1.1 manual, but they are in either
|
||||||
@ -389,12 +412,28 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "fstdx", 0x2c000200, 0xfc001fc0, "cy,x(b)", pa10},
|
{ "fstdx", 0x2c000200, 0xfc001fc0, "cy,x(b)", pa10},
|
||||||
{ "fstqx", 0x3c000200, 0xfc001fc0, "cy,x(s,b)", pa10},
|
{ "fstqx", 0x3c000200, 0xfc001fc0, "cy,x(s,b)", pa10},
|
||||||
{ "fstqx", 0x3c000200, 0xfc001fc0, "cy,x(b)", pa10},
|
{ "fstqx", 0x3c000200, 0xfc001fc0, "cy,x(b)", pa10},
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
{ "fldws", 0x5c000000, 0xfc000004, "gl(s,b),e", pa20},
|
||||||
|
{ "fldws", 0x5c000000, 0xfc000004, "gl(b),e", pa20},
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
{ "fldws", 0x24001000, 0xfc001f80, "C5(s,b),v", pa10},
|
{ "fldws", 0x24001000, 0xfc001f80, "C5(s,b),v", pa10},
|
||||||
{ "fldws", 0x24001000, 0xfc001f80, "C5(b),v", pa10},
|
{ "fldws", 0x24001000, 0xfc001f80, "C5(b),v", pa10},
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
{ "fldds", 0x50000002, 0xfc000002, "BL(s,b),x", pa20},
|
||||||
|
{ "fldds", 0x50000002, 0xfc000002, "BL(b),x", pa20},
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
{ "fldds", 0x2c001000, 0xfc001fc0, "C5(s,b),y", pa10},
|
{ "fldds", 0x2c001000, 0xfc001fc0, "C5(s,b),y", pa10},
|
||||||
{ "fldds", 0x2c001000, 0xfc001fc0, "C5(b),y", pa10},
|
{ "fldds", 0x2c001000, 0xfc001fc0, "C5(b),y", pa10},
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
{ "fstws", 0x7c000000, 0xfc000004, "ge,l(s,b)", pa20},
|
||||||
|
{ "fstws", 0x7c000000, 0xfc000004, "ge,l(b)", pa20},
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
{ "fstws", 0x24001200, 0xfc001f80, "Cv,5(s,b)", pa10},
|
{ "fstws", 0x24001200, 0xfc001f80, "Cv,5(s,b)", pa10},
|
||||||
{ "fstws", 0x24001200, 0xfc001f80, "Cv,5(b)", pa10},
|
{ "fstws", 0x24001200, 0xfc001f80, "Cv,5(b)", pa10},
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
{ "fstds", 0x70000002, 0xfc000002, "Bx,L(s,b)", pa20},
|
||||||
|
{ "fstds", 0x70000002, 0xfc000002, "Bx,L(b)", pa20},
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
{ "fstds", 0x2c001200, 0xfc001fc0, "Cy,5(s,b)", pa10},
|
{ "fstds", 0x2c001200, 0xfc001fc0, "Cy,5(s,b)", pa10},
|
||||||
{ "fstds", 0x2c001200, 0xfc001fc0, "Cy,5(b)", pa10},
|
{ "fstds", 0x2c001200, 0xfc001fc0, "Cy,5(b)", pa10},
|
||||||
{ "fstqs", 0x3c001200, 0xfc001fc0, "Cy,5(s,b)", pa10},
|
{ "fstqs", 0x3c001200, 0xfc001fc0, "Cy,5(s,b)", pa10},
|
||||||
@ -425,12 +464,37 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "fcnvfx", 0x38010200, 0xfc1f8720, "FGJ,v", pa10},
|
{ "fcnvfx", 0x38010200, 0xfc1f8720, "FGJ,v", pa10},
|
||||||
{ "fcnvfxt", 0x30018200, 0xfc1f87e0, "FGE,v", pa10},
|
{ "fcnvfxt", 0x30018200, 0xfc1f87e0, "FGE,v", pa10},
|
||||||
{ "fcnvfxt", 0x38018200, 0xfc1f8720, "FGJ,v", pa10},
|
{ "fcnvfxt", 0x38018200, 0xfc1f8720, "FGJ,v", pa10},
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
{ "fmpyfadd", 0xb8000000, 0xfc000020, "FE,X,3,v", pa20},
|
||||||
|
{ "fmpynfadd", 0xb8000020, 0xfc000020, "FE,X,3,v", pa20},
|
||||||
|
{ "fneg", 0x3000c000, 0xfc1fe7e0, "FE,v", pa20},
|
||||||
|
{ "fneg", 0x3800c000, 0xfc1fe720, "FJ,v", pa20},
|
||||||
|
{ "fnegabs", 0x3000e000, 0xfc1fe7e0, "FE,v", pa20},
|
||||||
|
{ "fnegabs", 0x3800e000, 0xfc1fe720, "FJ,v", pa20},
|
||||||
|
{ "fcnvuf", 0x30028200, 0xfc1f87e0, "FGE,v", pa20},
|
||||||
|
{ "fcnvuf", 0x38028200, 0xfc1f8720, "FGJ,v", pa20},
|
||||||
|
{ "fcnvfu", 0x30030200, 0xfc1f87e0, "FGE,v", pa20},
|
||||||
|
{ "fcnvfu", 0x38030200, 0xfc1f8720, "FGJ,v", pa20},
|
||||||
|
{ "fcnvfut", 0x30038200, 0xfc1f87e0, "FGE,v", pa20},
|
||||||
|
{ "fcnvfut", 0x38038200, 0xfc1f8720, "q_J,v", pa20},
|
||||||
|
{ "fcnv", 0x30000200, 0xfc1c0720, "q_E,v", pa20},
|
||||||
|
{ "fcnv", 0x38000200, 0xfc1c0720, "FGJ,v", pa20},
|
||||||
|
{ "fcmp", 0x30000400, 0xfc0007e0, "FME,X,h", pa20},
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
{ "fcmp", 0x30000400, 0xfc00e7e0, "FME,X", pa10},
|
{ "fcmp", 0x30000400, 0xfc00e7e0, "FME,X", pa10},
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
{ "fcmp", 0x38000400, 0xfc000720, "IMJ,K,h", pa20},
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
{ "fcmp", 0x38000400, 0xfc00e720, "IMJ,K", pa10},
|
{ "fcmp", 0x38000400, 0xfc00e720, "IMJ,K", pa10},
|
||||||
{ "xmpyu", 0x38004700, 0xfc00e720, "E,X,v", pa11},
|
{ "xmpyu", 0x38004700, 0xfc00e720, "E,X,v", pa11},
|
||||||
{ "fmpyadd", 0x18000000, 0xfc000000, "H4,6,7,9,8", pa11},
|
{ "fmpyadd", 0x18000000, 0xfc000000, "H4,6,7,9,8", pa11},
|
||||||
{ "fmpysub", 0x98000000, 0xfc000000, "H4,6,7,9,8", pa11},
|
{ "fmpysub", 0x98000000, 0xfc000000, "H4,6,7,9,8", pa11},
|
||||||
{ "ftest", 0x30002420, 0xffffffff, "", pa10},
|
{ "ftest", 0x30002420, 0xffffffff, "", pa10},
|
||||||
|
/* start-sanitize-cygnus */
|
||||||
|
{ "ftest", 0x30002420, 0xffffffe0, ",=", pa20},
|
||||||
|
{ "ftest", 0x30000420, 0xffff1fff, "m", pa20},
|
||||||
|
/* end-sanitize-cygnus */
|
||||||
|
{ "fid", 0x30000000, 0xffffffff, "", pa11},
|
||||||
|
|
||||||
|
|
||||||
/* Assist Instructions */
|
/* Assist Instructions */
|
||||||
|
Reference in New Issue
Block a user