aboutsummaryrefslogtreecommitdiff
path: root/include/opcode
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-10-03 03:28:56 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-10-03 03:28:56 +0000
commitefa77160ad781f6e805eaade8acc04ba47f4c877 (patch)
treebbd7ae0002527fa50c8314457bf6d94b4e8a660e /include/opcode
parenta834c083ac58f8f67c1cd4b2ded7647018bfa107 (diff)
downloadgdb-efa77160ad781f6e805eaade8acc04ba47f4c877.zip
gdb-efa77160ad781f6e805eaade8acc04ba47f4c877.tar.gz
gdb-efa77160ad781f6e805eaade8acc04ba47f4c877.tar.bz2
* hppa.h: Add gfw and gfr to the opcode table.
Diffstat (limited to 'include/opcode')
-rw-r--r--include/opcode/hppa.h43
1 files changed, 25 insertions, 18 deletions
diff --git a/include/opcode/hppa.h b/include/opcode/hppa.h
index 7a5ccb2..47470e1 100644
--- a/include/opcode/hppa.h
+++ b/include/opcode/hppa.h
@@ -67,7 +67,7 @@ struct pa_opcode
' "#$% *+- ./ 3 :; = @'
' B L N [\] _'
- ' e gh lm qr yz{|} '
+ ' e gh lm qr { } '
Here are all the characters:
@@ -76,9 +76,10 @@ struct pa_opcode
'abcdefghijklmnopqrstuvwxyz{|}~'
Kinds of operands:
- x register field at 15.
- b register field at 10.
- t register field at 31.
+ x integer register field at 15.
+ b integer register field at 10.
+ t integer register field at 31.
+ y floating point register field at 31
5 5 bit immediate at 15.
s 2 bit space specifier at 17.
S 3 bit space specifier at 18.
@@ -98,7 +99,8 @@ Kinds of operands:
k 21 bit immediate value at 31
n nullification for branch instructions
w 12 bit branch displacement
- W 17 bit branch displacement
+ W 17 bit branch displacement (PC relative)
+ z 17 bit branch displacement (just a number, not an address)
Also these:
@@ -140,6 +142,7 @@ Also these:
Q 5 bit immediate value at 10 (a bit position specified in
the bb instruction. It's the same as r above, except the
value is in a different location)
+ | shift/extract/deposit conditions when used in a conditional branch
And these (PJH) for PA-89 F.P. registers and instructions:
@@ -235,10 +238,10 @@ static const struct pa_opcode pa_opcodes[] =
{ "blr", 0xe8004000, 0xfc00e001, "nx,b", NORMAL},
{ "bv", 0xe800c000, 0xfc00e001, "nx(b)", NORMAL},
{ "bv", 0xe800c000, 0xfc00e001, "n(b)", NORMAL},
-{ "be", 0xe0000000, 0xfc000000, "nW(S,b)", NORMAL},
-{ "ble", 0xe4000000, 0xfc000000, "nW(S,b)", NORMAL},
-{ "movb", 0xc8000000, 0xfc000000, ">nx,b,w", CONDITIONAL},
-{ "movib", 0xcc000000, 0xfc000000, ">n5,b,w", CONDITIONAL},
+{ "be", 0xe0000000, 0xfc000000, "nz(S,b)", NORMAL},
+{ "ble", 0xe4000000, 0xfc000000, "nz(S,b)", NORMAL},
+{ "movb", 0xc8000000, 0xfc000000, "|nx,b,w", CONDITIONAL},
+{ "movib", 0xcc000000, 0xfc000000, "|n5,b,w", CONDITIONAL},
{ "combt", 0x80000000, 0xfc000000, "<nx,b,w", CONDITIONAL},
{ "combf", 0x88000000, 0xfc000000, "<nx,b,w", CONDITIONAL},
{ "comibt", 0x84000000, 0xfc000000, "<n5,b,w", CONDITIONAL},
@@ -362,25 +365,29 @@ static const struct pa_opcode pa_opcodes[] =
{ "fice", 0x040002c0, 0xfc003fdf, "Zx(s,b)"},
{ "fice", 0x040002c0, 0xfc003fdf, "Zx(b)"},
{ "diag", 0x14000000, 0xfc000000, "D"},
+{ "gfw", 0x04001680, 0xfc003fdf, "Zx(s,b)"},
+{ "gfw", 0x04001680, 0xfc003fdf, "Zx(b)"},
+{ "gfr", 0x04001a80, 0xfc003fdf, "Zx(s,b)"},
+{ "gfr", 0x04001a80, 0xfc003fdf, "Zx(b)"},
/* Floating Point Coprocessor Instructions */
{ "fldwx", 0x24000000, 0xfc001f80, "cx(s,b),v"},
{ "fldwx", 0x24000000, 0xfc001f80, "cx(b),v"},
-{ "flddx", 0x2c000000, 0xfc001fc0, "cx(s,b),t"},
-{ "flddx", 0x2c000000, 0xfc001fc0, "cx(b),t"},
+{ "flddx", 0x2c000000, 0xfc001fc0, "cx(s,b),y"},
+{ "flddx", 0x2c000000, 0xfc001fc0, "cx(b),y"},
{ "fstwx", 0x24000200, 0xfc001fc0, "cv,x(s,b)"},
{ "fstwx", 0x24000200, 0xfc001fc0, "cv,x(b)"},
-{ "fstdx", 0x2c000200, 0xfc001fc0, "ct,x(s,b)"},
-{ "fstdx", 0x2c000200, 0xfc001fc0, "ct,x(b)"},
+{ "fstdx", 0x2c000200, 0xfc001fc0, "cy,x(s,b)"},
+{ "fstdx", 0x2c000200, 0xfc001fc0, "cy,x(b)"},
{ "fldws", 0x24001000, 0xfc001f80, "C5(s,b),v"},
{ "fldws", 0x24001000, 0xfc001f80, "C5(b),v"},
-{ "fldds", 0x2c001000, 0xfc001fc0, "C5(s,b),t"},
-{ "fldds", 0x2c001000, 0xfc001fc0, "C5(b),t"},
+{ "fldds", 0x2c001000, 0xfc001fc0, "C5(s,b),y"},
+{ "fldds", 0x2c001000, 0xfc001fc0, "C5(b),y"},
{ "fstws", 0x24001200, 0xfc001f80, "Cv,5(s,b)"},
-{ "fstws", 0x24001200, 0xfc001f80, "Ct,5(b)"},
-{ "fstds", 0x2c001200, 0xfc001fc0, "Ct,5(s,b)"},
-{ "fstds", 0x2c001200, 0xfc001fc0, "Ct,5(b)"},
+{ "fstws", 0x24001200, 0xfc001f80, "Cy,5(b)"},
+{ "fstds", 0x2c001200, 0xfc001fc0, "Cy,5(s,b)"},
+{ "fstds", 0x2c001200, 0xfc001fc0, "Cy,5(b)"},
{ "fadd", 0x30000600, 0xfc00e7e0, "FE,X,v"},
{ "fadd", 0x38000600, 0xfc00e720, "IJ,K,v"},
{ "fsub", 0x30002600, 0xfc00e7e0, "FE,X,v"},