include/opcode/

2005-10-24  Jan Beulich  <jbeulich@novell.com>

	* ia64.h (enum ia64_opnd): Move memory operand out of set of
	indirect operands.

bfd/
2005-10-24  Jan Beulich  <jbeulich@novell.com>

	* cpu-ia64-opc.c (elf64_ia64_operands): Move memory operand out of
	set of indirect operands.

gas/
2005-10-24  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (enum reg_symbol): Delete IND_MEM.
	(dot_rot): Change type of num_* variables. Check for positive count.
	(ia64_optimize_expr): Re-structure.
	(md_operand): Check for general register.

gas/testsuite/
2005-10-24  Jan Beulich  <jbeulich@novell.com>

	* gas/ia64/index.[sl]: New.
	* gas/ia64/rotX.[sl]: New.
	* gas/ia64/ia64.exp: Run new tests.

opcodes/
2005-10-24  Jan Beulich  <jbeulich@novell.com>

	* ia64-asmtab.c: Regenerate.
This commit is contained in:
Jan Beulich 2005-10-24 07:42:50 +00:00
parent 5e0bd1769d
commit 6a2375c6b2
14 changed files with 274 additions and 105 deletions

View File

@ -1,3 +1,8 @@
2005-10-24 Jan Beulich <jbeulich@novell.com>
* cpu-ia64-opc.c (elf64_ia64_operands): Move memory operand out of
set of indirect operands.
2005-10-24 Alan Modra <amodra@bigpond.net.au>
* elf32-ppc.c (ppc_elf_fake_sections): Don't set SHF_EXCLUDE on

View File

@ -457,6 +457,10 @@ const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
{ REG, ins_reg, ext_reg, "r", {{ 2, 20}}, 0, /* R3_2 */
"a general register r0-r3" },
/* memory operands: */
{ IND, ins_reg, ext_reg, "", {{7, 20}}, 0, /* MR3 */
"a memory address" },
/* indirect operands: */
{ IND, ins_reg, ext_reg, "cpuid", {{7, 20}}, 0, /* CPUID_R3 */
"a cpuid register" },
@ -468,8 +472,6 @@ const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
"an itr register" },
{ IND, ins_reg, ext_reg, "ibr", {{7, 20}}, 0, /* IBR_R3 */
"an ibr register" },
{ IND, ins_reg, ext_reg, "", {{7, 20}}, 0, /* MR3 */
"an indirect memory address" },
{ IND, ins_reg, ext_reg, "msr", {{7, 20}}, 0, /* MSR_R3 */
"an msr register" },
{ IND, ins_reg, ext_reg, "pkr", {{7, 20}}, 0, /* PKR_R3 */

View File

@ -1,3 +1,10 @@
2005-10-24 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (enum reg_symbol): Delete IND_MEM.
(dot_rot): Change type of num_* variables. Check for positive count.
(ia64_optimize_expr): Re-structure.
(md_operand): Check for general register.
2005-10-24 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (declare_register): Call symbol_create.

View File

@ -124,7 +124,6 @@ enum reg_symbol
IND_DTR,
IND_ITR,
IND_IBR,
IND_MEM,
IND_MSR,
IND_PKR,
IND_PMC,
@ -4772,7 +4771,8 @@ static void
dot_rot (type)
int type;
{
unsigned num_regs, num_alloced = 0;
offsetT num_regs;
valueT num_alloced = 0;
struct dynreg **drpp, *dr;
int ch, base_reg = 0;
char *name, *start;
@ -4817,6 +4817,11 @@ dot_rot (type)
as_bad ("Expected ']'");
goto err;
}
if (num_regs <= 0)
{
as_bad ("Number of elements must be positive");
goto err;
}
SKIP_WHITESPACE ();
num_alloced += num_regs;
@ -7979,31 +7984,38 @@ ia64_optimize_expr (l, op, r)
operatorT op;
expressionS *r;
{
unsigned num_regs;
if (op == O_index)
if (op != O_index)
return 0;
resolve_expression (l);
if (l->X_op == O_register)
{
if (l->X_op == O_register && r->X_op == O_constant)
unsigned num_regs = l->X_add_number >> 16;
resolve_expression (r);
if (num_regs)
{
num_regs = (l->X_add_number >> 16);
if ((unsigned) r->X_add_number >= num_regs)
/* Left side is a .rotX-allocated register. */
if (r->X_op != O_constant)
{
if (!num_regs)
as_bad ("No current frame");
else
as_bad ("Index out of range 0..%u", num_regs - 1);
as_bad ("Rotating register index must be a non-negative constant");
r->X_add_number = 0;
}
else if ((valueT) r->X_add_number >= num_regs)
{
as_bad ("Index out of range 0..%u", num_regs - 1);
r->X_add_number = 0;
}
l->X_add_number = (l->X_add_number & 0xffff) + r->X_add_number;
return 1;
}
else if (l->X_op == O_register && r->X_op == O_register)
else if (l->X_add_number >= IND_CPUID && l->X_add_number <= IND_RR)
{
if (l->X_add_number < IND_CPUID || l->X_add_number > IND_RR
|| l->X_add_number == IND_MEM)
if (r->X_op != O_register
|| r->X_add_number < REG_GR
|| r->X_add_number > REG_GR + 127)
{
as_bad ("Indirect register set name expected");
l->X_add_number = IND_CPUID;
as_bad ("Indirect register index must be a general register");
r->X_add_number = REG_GR;
}
l->X_op = O_index;
l->X_op_symbol = md.regsym[l->X_add_number];
@ -8011,7 +8023,12 @@ ia64_optimize_expr (l, op, r)
return 1;
}
}
return 0;
as_bad ("Index can only be applied to rotating or indirect registers");
/* Fall back to some register use of which has as little as possible
side effects, to minimize subsequent error messages. */
l->X_op = O_register;
l->X_add_number = REG_GR + 3;
return 1;
}
int
@ -11020,8 +11037,13 @@ md_operand (e)
}
else
{
if (e->X_op != O_register)
as_bad ("Register expected as index");
if (e->X_op != O_register
|| e->X_add_number < REG_GR
|| e->X_add_number > REG_GR + 127)
{
as_bad ("Index must be a general register");
e->X_add_number = REG_GR;
}
++input_line_pointer;
e->X_op = O_index;

View File

@ -1,3 +1,9 @@
2005-10-24 Jan Beulich <jbeulich@novell.com>
* gas/ia64/index.[sl]: New.
* gas/ia64/rotX.[sl]: New.
* gas/ia64/ia64.exp: Run new tests.
2005-10-24 Jan Beulich <jbeulich@novell.com>
* gas/ia64/regs.pl: Also check tp alias of r13.

View File

@ -79,12 +79,14 @@ if [istarget "ia64-*"] then {
run_list_test "alloc" ""
run_dump_test "bundling"
run_dump_test "forward"
run_list_test "index" ""
run_list_test "label" ""
run_list_test "last" ""
run_list_test "no-fit" ""
run_list_test "pound" "-al"
run_list_test "proc" "-munwind-check=error"
run_list_test "radix" ""
run_list_test "rotX" ""
run_list_test "slot2" ""
run_dump_test "strange"
run_list_test "unwind-bad" ""

View File

@ -0,0 +1,42 @@
.*: Assembler messages:
.*.s:6: Error: [Ii]ndex must be a general register
.*.s:7: Error: [Ii]ndex must be a general register
.*.s:8: Error: [Ii]ndex must be a general register
.*.s:9: Error: [Ii]ndex must be a general register
.*.s:13: Error: [Ii]ndirect register index must be a general register
.*.s:14: Error: [Ii]ndirect register index must be a general register
.*.s:15: Error: [Ii]ndirect register index must be a general register
.*.s:16: Error: [Ii]ndirect register index must be a general register
.*.s:20: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:21: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:22: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:23: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:24: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:25: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:27: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:28: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:29: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:30: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:31: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:32: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:37: Error: [Rr]otating register index must be a non-negative constant
.*.s:39: Error: [Ii]ndex out of range 0\.\.[[:digit:]]+
.*.s:40: Error: [Rr]otating register index must be a non-negative constant
.*.s:41: Error: [Rr]otating register index must be a non-negative constant
.*.s:42: Error: [Rr]otating register index must be a non-negative constant
.*.s:44: Error: [Ii]ndirect register index must be a general register
.*.s:45: Error: [Ii]ndirect register index must be a general register
.*.s:46: Error: [Ii]ndirect register index must be a general register
.*.s:47: Error: [Ii]ndirect register index must be a general register
.*.s:51: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:52: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:53: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:54: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:55: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:56: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:58: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:59: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:60: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:61: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:62: Error: [Ii]ndex can only be applied to rotating or indirect registers
.*.s:63: Error: [Ii]ndex can only be applied to rotating or indirect registers

View File

@ -0,0 +1,63 @@
z == zero
zero == r0
.text
_start:
ld8 r2 = [ar.lc]
ld8 r3 = [1]
ld8 r4 = [-1]
ld8 r5 = [xyz]
ld8 r6 = [zero]
ld8 r7 = [z]
mov r2 = cpuid[ar.lc]
mov r3 = cpuid[1]
mov r4 = cpuid[-1]
mov r5 = cpuid[xyz]
mov r6 = cpuid[zero]
mov r7 = cpuid[z]
mov r2 = b0[ar.lc]
mov r3 = b0[1]
mov r4 = b0[-1]
mov r5 = b0[xyz]
mov r6 = b0[zero]
mov r7 = b0[z]
mov r2 = xyz[ar.lc]
mov r3 = xyz[1]
mov r4 = xyz[-1]
mov r5 = xyz[xyz]
mov r6 = xyz[zero]
mov r7 = xyz[z]
.regstk 0, 8, 0, 8
.rotr reg[8]
mov r2 = reg[ar.lc]
mov r3 = reg[1]
mov r4 = reg[-1]
mov r5 = reg[xyz]
mov r6 = reg[zero]
mov r7 = reg[z]
mov r2 = cpuid[ar.lc]
mov r3 = cpuid[1]
mov r4 = cpuid[-1]
mov r5 = cpuid[xyz]
mov r6 = cpuid[zero]
mov r7 = cpuid[z]
mov r2 = b0[ar.lc]
mov r3 = b0[1]
mov r4 = b0[-1]
mov r5 = b0[xyz]
mov r6 = b0[zero]
mov r7 = b0[z]
mov r2 = xyz[ar.lc]
mov r3 = xyz[1]
mov r4 = xyz[-1]
mov r5 = xyz[xyz]
mov r6 = xyz[zero]
mov r7 = xyz[z]

View File

@ -0,0 +1,5 @@
.*: Assembler messages:
.*.s:[[:digit:]]+: Error: [Nn]umber of elements must be positive
.*.s:[[:digit:]]+: Error: [Nn]umber of elements must be positive
.*.s:[[:digit:]]+: Error: [Bb]ad or irreducible absolute expression
#pass

View File

@ -0,0 +1,4 @@
.regstk 0, 8, 0, 8
.rotr a[8], b[-8]
.rotp c[8], d[0]
.rotf e[8], f[x]

View File

@ -1,3 +1,8 @@
2005-10-24 Jan Beulich <jbeulich@novell.com>
* ia64.h (enum ia64_opnd): Move memory operand out of set of
indirect operands.
2005-10-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* hppa.h (pa_opcodes): Add two fcmp opcodes. Reorder ftest opcodes.

View File

@ -75,13 +75,15 @@ enum ia64_opnd
IA64_OPND_R3, /* third register # */
IA64_OPND_R3_2, /* third register # (limited to gr0-gr3) */
/* memory operands: */
IA64_OPND_MR3, /* memory at addr of third register # */
/* indirect operands: */
IA64_OPND_CPUID_R3, /* cpuid[reg] */
IA64_OPND_DBR_R3, /* dbr[reg] */
IA64_OPND_DTR_R3, /* dtr[reg] */
IA64_OPND_ITR_R3, /* itr[reg] */
IA64_OPND_IBR_R3, /* ibr[reg] */
IA64_OPND_MR3, /* memory at addr of third register # */
IA64_OPND_MSR_R3, /* msr[reg] */
IA64_OPND_PKR_R3, /* pkr[reg] */
IA64_OPND_PMC_R3, /* pmc[reg] */

View File

@ -1,3 +1,7 @@
2005-10-24 Jan Beulich <jbeulich@novell.com>
* ia64-asmtab.c: Regenerate.
2005-10-21 DJ Delorie <dj@redhat.com>
* m32c-asm.c: Regenerate.

View File

@ -4939,16 +4939,16 @@ main_table[] = {
{ 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 1058, },
{ 27, 1, 1, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 26, 7, 0, 0 }, 0x40, 1059, },
{ 27, 1, 2, 0x000001ce00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1377, },
{ 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 1, 2 }, 0x0, 257, },
{ 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 258, },
{ 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 259, },
{ 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 260, },
{ 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 261, },
{ 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 262, },
{ 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 263, },
{ 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 264, },
{ 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 265, },
{ 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 266, },
{ 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 28, 25, 1, 2 }, 0x0, 257, },
{ 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x40, 258, },
{ 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 28, 25, 2, 0 }, 0x0, 259, },
{ 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x40, 260, },
{ 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 28, 25, 2, 0 }, 0x0, 261, },
{ 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x40, 262, },
{ 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 28, 25, 2, 0 }, 0x0, 263, },
{ 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x40, 264, },
{ 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 28, 25, 2, 0 }, 0x0, 265, },
{ 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x40, 266, },
{ 34, 4, 0, 0x0000000010000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 19, },
{ 36, 2, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 1149, },
{ 37, 2, 1, 0x00000000c8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 1150, },
@ -4991,8 +4991,8 @@ main_table[] = {
{ 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 1025, },
{ 62, 5, 1, 0x00000000e0000000ull, 0x000001e3f8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 2998, },
{ 62, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 2999, },
{ 63, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 267, },
{ 64, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 268, },
{ 63, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 24, 28, 71, 0, 0 }, 0x0, 267, },
{ 64, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 24, 28, 71, 0, 0 }, 0x0, 268, },
{ 67, 3, 0, 0x0000000060000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 33, },
{ 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2319, },
{ 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 34, },
@ -5065,47 +5065,47 @@ main_table[] = {
{ 123, 3, 0, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 0, 0, 0, 0 }, 0x0, 902, },
{ 123, 3, 0, 0x0000000098000000ull, 0x000001eff8000000ull, { 18, 0, 0, 0, 0 }, 0x0, 903, },
{ 124, 3, 0, 0x0000002170000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0xc, 828, },
{ 125, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 30, 25, 0, 0, 0 }, 0x8, 829, },
{ 125, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 31, 25, 0, 0, 0 }, 0x8, 1125, },
{ 127, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 70, },
{ 127, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 71, },
{ 127, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 72, },
{ 128, 3, 2, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 1, 33, 0, 0 }, 0x0, 73, },
{ 128, 3, 1, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x40, 74, },
{ 129, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 75, },
{ 129, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 76, },
{ 129, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 77, },
{ 130, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 78, },
{ 130, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 79, },
{ 130, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 80, },
{ 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 81, },
{ 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 83, 0, 0 }, 0x0, 1321, },
{ 131, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 82, },
{ 131, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 83, },
{ 132, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 1021, },
{ 132, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 1022, },
{ 132, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 1023, },
{ 133, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 84, },
{ 133, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 85, },
{ 133, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 86, },
{ 134, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 87, },
{ 134, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 88, },
{ 134, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 89, },
{ 135, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 90, },
{ 135, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 91, },
{ 135, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 92, },
{ 136, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 93, },
{ 136, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 94, },
{ 137, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 95, },
{ 137, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 96, },
{ 138, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 97, },
{ 138, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 5, 0 }, 0x400, 98, },
{ 139, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 99, },
{ 139, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 100, },
{ 139, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 101, },
{ 142, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 33, 0, 0, 0, 0 }, 0x0, 102, },
{ 142, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x400, 103, },
{ 142, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 33, 62, 0, 0, 0 }, 0x400, 104, },
{ 125, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 31, 25, 0, 0, 0 }, 0x8, 829, },
{ 125, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 32, 25, 0, 0, 0 }, 0x8, 1125, },
{ 127, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 70, },
{ 127, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x400, 71, },
{ 127, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 24, 28, 62, 0, 0 }, 0x400, 72, },
{ 128, 3, 2, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 1, 28, 0, 0 }, 0x0, 73, },
{ 128, 3, 1, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 28, 0, 0, 0 }, 0x40, 74, },
{ 129, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 75, },
{ 129, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x400, 76, },
{ 129, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 24, 28, 62, 0, 0 }, 0x400, 77, },
{ 130, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 78, },
{ 130, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x400, 79, },
{ 130, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 24, 28, 62, 0, 0 }, 0x400, 80, },
{ 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 81, },
{ 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 28, 83, 0, 0 }, 0x0, 1321, },
{ 131, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x400, 82, },
{ 131, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 24, 28, 62, 0, 0 }, 0x400, 83, },
{ 132, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 18, 28, 0, 0, 0 }, 0x0, 1021, },
{ 132, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 18, 28, 25, 0, 0 }, 0x400, 1022, },
{ 132, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 18, 28, 62, 0, 0 }, 0x400, 1023, },
{ 133, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 18, 28, 0, 0, 0 }, 0x0, 84, },
{ 133, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 18, 28, 25, 0, 0 }, 0x400, 85, },
{ 133, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 18, 28, 62, 0, 0 }, 0x400, 86, },
{ 134, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 18, 28, 0, 0, 0 }, 0x0, 87, },
{ 134, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 18, 28, 25, 0, 0 }, 0x400, 88, },
{ 134, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 18, 28, 62, 0, 0 }, 0x400, 89, },
{ 135, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 18, 28, 0, 0, 0 }, 0x0, 90, },
{ 135, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 18, 28, 25, 0, 0 }, 0x400, 91, },
{ 135, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 18, 28, 62, 0, 0 }, 0x400, 92, },
{ 136, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 18, 19, 28, 0, 0 }, 0x0, 93, },
{ 136, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 18, 19, 28, 6, 0 }, 0x400, 94, },
{ 137, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 18, 19, 28, 0, 0 }, 0x0, 95, },
{ 137, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 18, 19, 28, 6, 0 }, 0x400, 96, },
{ 138, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 18, 19, 28, 0, 0 }, 0x0, 97, },
{ 138, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 18, 19, 28, 5, 0 }, 0x400, 98, },
{ 139, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 18, 28, 0, 0, 0 }, 0x0, 99, },
{ 139, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 18, 28, 25, 0, 0 }, 0x400, 100, },
{ 139, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 18, 28, 62, 0, 0 }, 0x400, 101, },
{ 142, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 28, 0, 0, 0, 0 }, 0x0, 102, },
{ 142, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 28, 25, 0, 0, 0 }, 0x400, 103, },
{ 142, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 28, 62, 0, 0, 0 }, 0x400, 104, },
{ 143, 3, 0, 0x0000000050000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 105, },
{ 151, 3, 0, 0x0000000110000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 106, },
{ 152, 2, 1, 0x000000e880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2169, },
@ -5135,20 +5135,20 @@ main_table[] = {
{ 155, 3, 1, 0x0000002128000000ull, 0x000001eff8000000ull, { 24, 11, 0, 0, 0 }, 0x8, 122, },
{ 155, 3, 1, 0x0000002108000000ull, 0x000001eff8000000ull, { 24, 13, 0, 0, 0 }, 0x0, 123, },
{ 155, 3, 1, 0x0000002000000000ull, 0x000001eff8000000ull, { 38, 25, 0, 0, 0 }, 0x8, 124, },
{ 155, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 29, 25, 0, 0, 0 }, 0x8, 125, },
{ 155, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 32, 25, 0, 0, 0 }, 0x8, 126, },
{ 155, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 30, 25, 0, 0, 0 }, 0x8, 125, },
{ 155, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 33, 25, 0, 0, 0 }, 0x8, 126, },
{ 155, 3, 1, 0x0000002018000000ull, 0x000001eff8000000ull, { 35, 25, 0, 0, 0 }, 0x8, 127, },
{ 155, 3, 1, 0x0000002020000000ull, 0x000001eff8000000ull, { 36, 25, 0, 0, 0 }, 0x8, 128, },
{ 155, 3, 1, 0x0000002028000000ull, 0x000001eff8000000ull, { 37, 25, 0, 0, 0 }, 0x8, 129, },
{ 155, 3, 1, 0x0000002030000000ull, 0x000001eff8000000ull, { 34, 25, 0, 0, 0 }, 0x8, 130, },
{ 155, 3, 1, 0x0000002080000000ull, 0x000001eff8000000ull, { 24, 38, 0, 0, 0 }, 0x8, 131, },
{ 155, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 24, 29, 0, 0, 0 }, 0x8, 132, },
{ 155, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 24, 32, 0, 0, 0 }, 0x8, 133, },
{ 155, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 24, 30, 0, 0, 0 }, 0x8, 132, },
{ 155, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 24, 33, 0, 0, 0 }, 0x8, 133, },
{ 155, 3, 1, 0x0000002098000000ull, 0x000001eff8000000ull, { 24, 35, 0, 0, 0 }, 0x8, 134, },
{ 155, 3, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 24, 36, 0, 0, 0 }, 0x8, 135, },
{ 155, 3, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 24, 37, 0, 0, 0 }, 0x0, 136, },
{ 155, 3, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 24, 34, 0, 0, 0 }, 0x8, 137, },
{ 155, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 138, },
{ 155, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 24, 29, 0, 0, 0 }, 0x0, 138, },
{ 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 14, 0, 0, 0 }, 0x0, 139, },
{ 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 55, 0, 0, 0 }, 0x0, 140, },
{ 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 25, 0, 0, 0 }, 0x0, 141, },
@ -5216,26 +5216,26 @@ main_table[] = {
{ 231, 2, 1, 0x000000ac00000000ull, 0x000001ee00000000ull, { 24, 25, 26, 44, 0 }, 0x0, 182, },
{ 236, 3, 0, 0x0000000180000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 832, },
{ 237, 3, 0, 0x0000000030000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 183, },
{ 239, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 184, },
{ 239, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 185, },
{ 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 1, 0, 0 }, 0x0, 186, },
{ 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x40, 187, },
{ 241, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 188, },
{ 241, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 189, },
{ 242, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 190, },
{ 242, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 191, },
{ 243, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 192, },
{ 243, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 193, },
{ 244, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 2751, },
{ 244, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 2752, },
{ 245, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 194, },
{ 245, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 195, },
{ 246, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 196, },
{ 246, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 197, },
{ 247, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 198, },
{ 247, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 199, },
{ 248, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 200, },
{ 248, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 201, },
{ 239, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 28, 25, 0, 0, 0 }, 0x0, 184, },
{ 239, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 28, 25, 61, 0, 0 }, 0x400, 185, },
{ 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 28, 25, 1, 0, 0 }, 0x0, 186, },
{ 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 28, 25, 0, 0, 0 }, 0x40, 187, },
{ 241, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 28, 25, 0, 0, 0 }, 0x0, 188, },
{ 241, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 28, 25, 61, 0, 0 }, 0x400, 189, },
{ 242, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 28, 25, 0, 0, 0 }, 0x0, 190, },
{ 242, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 28, 25, 61, 0, 0 }, 0x400, 191, },
{ 243, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 28, 25, 0, 0, 0 }, 0x0, 192, },
{ 243, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 28, 25, 61, 0, 0 }, 0x400, 193, },
{ 244, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 28, 19, 0, 0, 0 }, 0x0, 2751, },
{ 244, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 28, 19, 61, 0, 0 }, 0x400, 2752, },
{ 245, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 28, 19, 0, 0, 0 }, 0x0, 194, },
{ 245, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 28, 19, 61, 0, 0 }, 0x400, 195, },
{ 246, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 28, 19, 0, 0, 0 }, 0x0, 196, },
{ 246, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 28, 19, 61, 0, 0 }, 0x400, 197, },
{ 247, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 28, 19, 0, 0, 0 }, 0x0, 198, },
{ 247, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 28, 19, 61, 0, 0 }, 0x400, 199, },
{ 248, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 28, 19, 0, 0, 0 }, 0x0, 200, },
{ 248, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 28, 19, 61, 0, 0 }, 0x400, 201, },
{ 249, 1, 1, 0x0000010028000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 202, },
{ 249, 1, 1, 0x0000010020000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 203, },
{ 249, 1, 1, 0x0000010128000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 204, },
@ -5259,10 +5259,10 @@ main_table[] = {
{ 265, 2, 1, 0x000000e840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1113, },
{ 266, 2, 1, 0x000000ea40000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1114, },
{ 267, 2, 1, 0x000000f840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1115, },
{ 275, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 213, },
{ 276, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 214, },
{ 277, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 215, },
{ 278, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 216, },
{ 275, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x0, 213, },
{ 276, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x0, 214, },
{ 277, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x0, 215, },
{ 278, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 24, 28, 25, 0, 0 }, 0x0, 216, },
{ 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1161, },
{ 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 1243, },
{ 281, 5, 1, 0x000001d000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 1162, },