' "#$% *+- ./ 3 :; = @'
' B L N [\] _'
- ' e gh lm qr yz{|} '
+ ' e gh lm qr { } '
Here are all the characters:
'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.
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:
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:
{ "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},
{ "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"},