* hppa.h: Add strict variants of PA1.0/PA1.1 loads and stores.
Add a few PA2.0 loads and store variants.
This commit is contained in:
parent
0f4f8b56e7
commit
90765e3a9e
@ -1,3 +1,8 @@
|
|||||||
|
Mon Sep 6 04:41:42 1999 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
|
* hppa.h: Add strict variants of PA1.0/PA1.1 loads and stores.
|
||||||
|
Add a few PA2.0 loads and store variants.
|
||||||
|
|
||||||
1999-09-04 Steve Chamberlain <sac@pobox.com>
|
1999-09-04 Steve Chamberlain <sac@pobox.com>
|
||||||
|
|
||||||
* pj.h: New file.
|
* pj.h: New file.
|
||||||
|
@ -264,16 +264,40 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "mtsar", 0x01601840, 0xffe0ffff, "x", pa10}, /* mtctl r,cr11 */
|
{ "mtsar", 0x01601840, 0xffe0ffff, "x", pa10}, /* mtctl r,cr11 */
|
||||||
|
|
||||||
/* Loads and Stores for integer registers. */
|
/* Loads and Stores for integer registers. */
|
||||||
|
{ "ldd", 0x0c0000c0, 0xfc001fc0, "cxx(s,b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "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},
|
||||||
|
{ "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},
|
||||||
|
{ "ldw", 0x0c001080, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
|
||||||
{ "ldw", 0x48000000, 0xfc000000, "j(s,b),x", pa10},
|
{ "ldw", 0x48000000, 0xfc000000, "j(s,b),x", pa10},
|
||||||
{ "ldw", 0x48000000, 0xfc000000, "j(b),x", pa10},
|
{ "ldw", 0x48000000, 0xfc000000, "j(b),x", pa10},
|
||||||
|
{ "ldh", 0x0c000040, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldh", 0x0c000040, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldh", 0x0c001040, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldh", 0x0c001040, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
|
||||||
{ "ldh", 0x44000000, 0xfc000000, "j(s,b),x", pa10},
|
{ "ldh", 0x44000000, 0xfc000000, "j(s,b),x", pa10},
|
||||||
{ "ldh", 0x44000000, 0xfc000000, "j(b),x", pa10},
|
{ "ldh", 0x44000000, 0xfc000000, "j(b),x", pa10},
|
||||||
|
{ "ldb", 0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldb", 0x0c000000, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldb", 0x0c001000, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldb", 0x0c001000, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
|
||||||
{ "ldb", 0x40000000, 0xfc000000, "j(s,b),x", pa10},
|
{ "ldb", 0x40000000, 0xfc000000, "j(s,b),x", pa10},
|
||||||
{ "ldb", 0x40000000, 0xfc000000, "j(b),x", pa10},
|
{ "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},
|
||||||
|
{ "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},
|
{ "stw", 0x68000000, 0xfc000000, "x,j(s,b)", pa10},
|
||||||
{ "stw", 0x68000000, 0xfc000000, "x,j(b)", pa10},
|
{ "stw", 0x68000000, 0xfc000000, "x,j(b)", pa10},
|
||||||
|
{ "sth", 0x0c001240, 0xfc001fc0, "cmx,V(s,b)", pa10, FLAG_STRICT},
|
||||||
|
{ "sth", 0x0c001240, 0xfc001fc0, "cmx,V(b)", pa10, FLAG_STRICT},
|
||||||
{ "sth", 0x64000000, 0xfc000000, "x,j(s,b)", pa10},
|
{ "sth", 0x64000000, 0xfc000000, "x,j(s,b)", pa10},
|
||||||
{ "sth", 0x64000000, 0xfc000000, "x,j(b)", pa10},
|
{ "sth", 0x64000000, 0xfc000000, "x,j(b)", pa10},
|
||||||
|
{ "stb", 0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10, FLAG_STRICT},
|
||||||
|
{ "stb", 0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10, FLAG_STRICT},
|
||||||
{ "stb", 0x60000000, 0xfc000000, "x,j(s,b)", pa10},
|
{ "stb", 0x60000000, 0xfc000000, "x,j(s,b)", pa10},
|
||||||
{ "stb", 0x60000000, 0xfc000000, "x,j(b)", pa10},
|
{ "stb", 0x60000000, 0xfc000000, "x,j(b)", pa10},
|
||||||
{ "ldwm", 0x4c000000, 0xfc000000, "j(s,b),x", pa10},
|
{ "ldwm", 0x4c000000, 0xfc000000, "j(s,b),x", pa10},
|
||||||
@ -286,6 +310,23 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "ldhx", 0x0c000040, 0xfc001fc0, "cxx(b),t", pa10},
|
{ "ldhx", 0x0c000040, 0xfc001fc0, "cxx(b),t", pa10},
|
||||||
{ "ldbx", 0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10},
|
{ "ldbx", 0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10},
|
||||||
{ "ldbx", 0x0c000000, 0xfc001fc0, "cxx(b),t", pa10},
|
{ "ldbx", 0x0c000000, 0xfc001fc0, "cxx(b),t", pa10},
|
||||||
|
{ "ldwa", 0x0c000180, 0xfc00dfc0, "cxx(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldwa", 0x0c001180, 0xfc00dfc0, "cm5(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldcw", 0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldcw", 0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldcw", 0x0c0011c0, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "ldcw", 0x0c0011c0, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "stwa", 0x0c001380, 0xfc00dfc0, "cmx,V(b)", pa10, FLAG_STRICT},
|
||||||
|
{ "stby", 0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10, FLAG_STRICT},
|
||||||
|
{ "stby", 0x0c001300, 0xfc001fc0, "csx,V(b)", pa10, FLAG_STRICT},
|
||||||
|
{ "ldda", 0x0c000100, 0xfc00dfc0, "cxx(b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "ldda", 0x0c001100, 0xfc00dfc0, "cm5(b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "ldcd", 0x0c000140, 0xfc001fc0, "cxx(s,b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "ldcd", 0x0c000140, 0xfc001fc0, "cxx(b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "ldcd", 0x0c001140, 0xfc001fc0, "cm5(s,b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "ldcd", 0x0c001140, 0xfc001fc0, "cm5(b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "stda", 0x0c0013c0, 0xfc001fc0, "cmx,V(s,b)", pa20, FLAG_STRICT},
|
||||||
|
{ "stda", 0x0c0013c0, 0xfc001fc0, "cmx,V(b)", pa20, FLAG_STRICT},
|
||||||
{ "ldwax", 0x0c000180, 0xfc00dfc0, "cxx(b),t", pa10},
|
{ "ldwax", 0x0c000180, 0xfc00dfc0, "cxx(b),t", pa10},
|
||||||
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10},
|
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10},
|
||||||
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10},
|
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10},
|
||||||
@ -305,6 +346,8 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "stbs", 0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10},
|
{ "stbs", 0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10},
|
||||||
{ "stbs", 0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10},
|
{ "stbs", 0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10},
|
||||||
{ "stwas", 0x0c001380, 0xfc00dfc0, "cmx,V(b)", pa10},
|
{ "stwas", 0x0c001380, 0xfc00dfc0, "cmx,V(b)", pa10},
|
||||||
|
{ "stdby", 0x0c001340, 0xfc001fc0, "csx,V(s,b)", pa20, FLAG_STRICT},
|
||||||
|
{ "stdby", 0x0c001340, 0xfc001fc0, "csx,V(b)", pa20, FLAG_STRICT},
|
||||||
{ "stbys", 0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10},
|
{ "stbys", 0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10},
|
||||||
{ "stbys", 0x0c001300, 0xfc001fc0, "csx,V(b)", pa10},
|
{ "stbys", 0x0c001300, 0xfc001fc0, "csx,V(b)", pa10},
|
||||||
|
|
||||||
@ -528,6 +571,8 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "fice", 0x040002c0, 0xfc001fdf, "cZx(S,b)", pa10},
|
{ "fice", 0x040002c0, 0xfc001fdf, "cZx(S,b)", pa10},
|
||||||
{ "fice", 0x040002c0, 0xfc001fdf, "cZx(b)", pa10},
|
{ "fice", 0x040002c0, 0xfc001fdf, "cZx(b)", pa10},
|
||||||
{ "diag", 0x14000000, 0xfc000000, "D", pa10},
|
{ "diag", 0x14000000, 0xfc000000, "D", pa10},
|
||||||
|
{ "idtlbt", 0x04001800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT},
|
||||||
|
{ "iitlbt", 0x04000800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT},
|
||||||
|
|
||||||
/* These may be specific to certain versions of the PA. Joel claimed
|
/* These may be specific to certain versions of the PA. Joel claimed
|
||||||
they were 72000 (7200?) specific. However, I'm almost certain the
|
they were 72000 (7200?) specific. However, I'm almost certain the
|
||||||
@ -636,6 +681,22 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "cstws", 0x24001200, 0xfc001e00, "ucmt,5(b)", pa10},
|
{ "cstws", 0x24001200, 0xfc001e00, "ucmt,5(b)", pa10},
|
||||||
{ "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10},
|
{ "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10},
|
||||||
{ "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10},
|
{ "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10},
|
||||||
|
{ "cldw", 0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "cldw", 0x24000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "cldw", 0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "cldw", 0x24001000, 0xfc001e00, "ucm5(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "cldd", 0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "cldd", 0x2c000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "cldd", 0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT},
|
||||||
|
{ "cldd", 0x2c001000, 0xfc001e00, "ucm5(b),t", pa20, FLAG_STRICT},
|
||||||
|
{ "cstw", 0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT},
|
||||||
|
{ "cstw", 0x24000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT},
|
||||||
|
{ "cstw", 0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT},
|
||||||
|
{ "cstw", 0x24001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT},
|
||||||
|
{ "cstd", 0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT},
|
||||||
|
{ "cstd", 0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT},
|
||||||
|
{ "cstd", 0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT},
|
||||||
|
{ "cstd", 0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
|
#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
|
||||||
|
Loading…
Reference in New Issue
Block a user