* hppa.h (pa_opcodes): Add pa2.0 instructions hadd, hshl,
hshr, hsub, mixh, mixw, permh.
This commit is contained in:
parent
3281117ae1
commit
96226a686f
@ -1,5 +1,8 @@
|
|||||||
Sat Aug 28 00:25:25 1999 Jerry Quinn <jquinn@nortelnetworks.com>
|
Sat Aug 28 00:25:25 1999 Jerry Quinn <jquinn@nortelnetworks.com>
|
||||||
|
|
||||||
|
* hppa.h (pa_opcodes): Add pa2.0 instructions hadd, hshl,
|
||||||
|
hshr, hsub, mixh, mixw, permh.
|
||||||
|
|
||||||
* hppa.h (pa_opcodes): Change completers in instructions to
|
* hppa.h (pa_opcodes): Change completers in instructions to
|
||||||
use 'c' prefix.
|
use 'c' prefix.
|
||||||
|
|
||||||
|
@ -70,9 +70,9 @@ struct pa_opcode
|
|||||||
|
|
||||||
In the args field, the following characters are unused:
|
In the args field, the following characters are unused:
|
||||||
|
|
||||||
' "# %& *+- / :;< > @'
|
' "# %& +- / :;< > @'
|
||||||
' C LM U YZ[\] '
|
' C LM U YZ[\] '
|
||||||
'a d l {|} '
|
' d l {|} '
|
||||||
|
|
||||||
Here are all the characters:
|
Here are all the characters:
|
||||||
|
|
||||||
@ -84,6 +84,7 @@ Kinds of operands:
|
|||||||
x integer register field at 15.
|
x integer register field at 15.
|
||||||
b integer register field at 10.
|
b integer register field at 10.
|
||||||
t integer register field at 31.
|
t integer register field at 31.
|
||||||
|
a integer register field at 10 and 15 (for PERMH)
|
||||||
y floating point register field at 31
|
y floating point register field at 31
|
||||||
5 5 bit immediate at 15.
|
5 5 bit immediate at 15.
|
||||||
s 2 bit space specifier at 17.
|
s 2 bit space specifier at 17.
|
||||||
@ -104,6 +105,10 @@ Completer operands all have 'c' as the prefix:
|
|||||||
cm short load and store completer.
|
cm short load and store completer.
|
||||||
cs store bytes short completer.
|
cs store bytes short completer.
|
||||||
cZ System Control Completer (to support LPA, LHA, etc.)
|
cZ System Control Completer (to support LPA, LHA, etc.)
|
||||||
|
ch left/right half completer
|
||||||
|
cH signed/unsigned saturation completer
|
||||||
|
cS signed/unsigned completer at 21
|
||||||
|
c* permutation completer
|
||||||
|
|
||||||
Condition operands all have '?' as the prefix:
|
Condition operands all have '?' as the prefix:
|
||||||
|
|
||||||
@ -143,6 +148,7 @@ Condition operands all have '?' as the prefix:
|
|||||||
Also these:
|
Also these:
|
||||||
|
|
||||||
. 2 bit shift amount at 25
|
. 2 bit shift amount at 25
|
||||||
|
* 4 bit shift amount at 25
|
||||||
p 5 bit shift count at 26 (to support the SHD instruction) encoded as
|
p 5 bit shift count at 26 (to support the SHD instruction) encoded as
|
||||||
31-p
|
31-p
|
||||||
~ 6 bit shift count at 20,22:26 encoded as 63-~.
|
~ 6 bit shift count at 20,22:26 encoded as 63-~.
|
||||||
@ -305,8 +311,8 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
{ "addibt", 0xa4000000, 0xfc000000, "?dn5,b,w", pa10},
|
{ "addibt", 0xa4000000, 0xfc000000, "?dn5,b,w", pa10},
|
||||||
{ "addibf", 0xac000000, 0xfc000000, "?dn5,b,w", pa10},
|
{ "addibf", 0xac000000, 0xfc000000, "?dn5,b,w", pa10},
|
||||||
{ "bb", 0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT},
|
{ "bb", 0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT},
|
||||||
{ "bb", 0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT},
|
|
||||||
{ "bb", 0xc4006000, 0xfc006000, "?Bnx,Q,w", pa20, FLAG_STRICT},
|
{ "bb", 0xc4006000, 0xfc006000, "?Bnx,Q,w", pa20, FLAG_STRICT},
|
||||||
|
{ "bb", 0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT},
|
||||||
{ "bb", 0xc4004000, 0xfc004000, "?bnx,Q,w", pa10},
|
{ "bb", 0xc4004000, 0xfc004000, "?bnx,Q,w", pa10},
|
||||||
{ "bvb", 0xc0004000, 0xffe04000, "?bnx,w", pa10},
|
{ "bvb", 0xc0004000, 0xffe04000, "?bnx,w", pa10},
|
||||||
{ "clrbts", 0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
|
{ "clrbts", 0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
|
||||||
@ -368,9 +374,16 @@ static const struct pa_opcode pa_opcodes[] =
|
|||||||
|
|
||||||
/* Subword Operation Instructions */
|
/* Subword Operation Instructions */
|
||||||
|
|
||||||
|
{ "hadd", 0x08000300, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT},
|
||||||
{ "havg", 0x080002c0, 0xfc00ffe0, "x,b,t", pa20, FLAG_STRICT},
|
{ "havg", 0x080002c0, 0xfc00ffe0, "x,b,t", pa20, FLAG_STRICT},
|
||||||
|
{ "hshl", 0xf8008800, 0xffe0fc20, "x,*,t", pa20, FLAG_STRICT},
|
||||||
{ "hshladd", 0x08000700, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
|
{ "hshladd", 0x08000700, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
|
||||||
|
{ "hshr", 0xf800c800, 0xfc10f820, "cSb,*,t", pa20, FLAG_STRICT},
|
||||||
{ "hshradd", 0x08000500, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
|
{ "hshradd", 0x08000500, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
|
||||||
|
{ "hsub", 0x08000100, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT},
|
||||||
|
{ "mixh", 0xf8008400, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT},
|
||||||
|
{ "mixw", 0xf8008000, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT},
|
||||||
|
{ "permh", 0xf8000000, 0xfc009020, "c*a,t", pa20, FLAG_STRICT},
|
||||||
|
|
||||||
|
|
||||||
/* Extract and Deposit Instructions */
|
/* Extract and Deposit Instructions */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user