From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19612 invoked by alias); 22 Sep 2005 20:58:37 -0000 Mailing-List: contact sid-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: sid-owner@sources.redhat.com Received: (qmail 18350 invoked by uid 22791); 22 Sep 2005 20:54:15 -0000 Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Thu, 22 Sep 2005 20:54:15 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j8MKsDxI027178; Thu, 22 Sep 2005 16:54:13 -0400 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j8MKs8V27396; Thu, 22 Sep 2005 16:54:08 -0400 Received: from [192.168.1.101] (vpn50-34.rdu.redhat.com [172.16.50.34]) by potter.sfbay.redhat.com (8.12.8/8.12.8) with ESMTP id j8MKrux3008431; Thu, 22 Sep 2005 16:53:57 -0400 Message-ID: <433319E3.9060307@redhat.com> Date: Thu, 22 Sep 2005 20:58:00 -0000 From: Dave Brolley User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050317) MIME-Version: 1.0 To: cgen@sources.redhat.com, binutils@sources.redhat.com, gdb-patches@sources.redhat.com, sid@sources.redhat.com Subject: [patch][rfa] Representation of ISA Attribute in CGEN Content-Type: multipart/mixed; boundary="------------020808060507000302010409" X-SW-Source: 2005-q3/txt/msg00029.txt.bz2 This is a multi-part message in MIME format. --------------020808060507000302010409 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1818 Hi, These changes have been in our local tree for a few years now and were developed for an internal port which requires *much* more than 32 ISAs or even 64 ISAs. These changes could be of benifit to others, so I would like to submit them for approval. Currently, ISA is represented as an integer, like all the other non-boolean attributes. It is a bit mask with each bit representing whether a particular ISA is supported. Our port requires that there be no fixed limit on the number of ISAs, and so, we developed an open-ended representation for a bitset using a bitstring and a length. It is called CGEN_BITSET and is declared in include/opcode/cgen-bitset.h and supported by several new functions in opcodes/cgen-opc.c. All manipulation of these bitsets is done using these functions which hide the internal representation. See cgen-bitset.h (attached) for a description of the implementation The patch has 3 parts: 1) Extension of CGEN_ATTR_VALUE_TYPE to be a union allowing the use of CGEN_BITSET as well as its supporting macros. 2) Changes to CGEN so that it generates code to correctly access and initialize the new definition of CGEN_ATTR_VALUE_TYPE and to use the proper cover functions when manipulating ISAs. 3) Changes to hand written portions of existing opcodes, sim and sid ports as in 2). Fortunately, the use of existing CGEN macros made these changes minimal. I have also included in the patch the regenerated source for the frv port so that you can see the effect on the generated code. None of the generated code for existing sid ports is affected. One natural extension of this work would be use the same representation for all bitset attributes in CGEN. I believe that MACH is the only other one at this time. Seeking comments and approval to commit. Thanks, Dave --------------020808060507000302010409 Content-Type: text/plain; name="cgen-bitset.ChangeLog" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="cgen-bitset.ChangeLog" Content-length: 5154 cgen/ChangeLog: 2005-09-19 Dave Brolley * attr.scm (gen-value-for-defn-raw): New methods. (gen-value-for-defn): Don't test for 'SID-SIMULATOR. Call gen-value-for-defn-raw. * sid.scm (gen-obj-attr-sid-defn): Call gen-value-for-defn-raw. 2002-12-13 Dave Brolley * utils-cgen.scm (gen-attr-type): Moved from sid.scm. (-gen-attr-accessors): New function. (gen-obj-attr-defn): Update terminating initializer. (gen-obj-attr-end-defn): New function. * sid.scm (gen-attr-type): Moved to utils-cgen.scm. * sid-cpu.scm (cgen-desc.h): Generate code to include "opcode/cgen-bitset.h" * intrinsics.scm (kept-insn-isas): Correct the extraction of the isa name. * desc.scm ('gen-defn): Update terminating initializer. * desc-cpu.scm (gen-ifld-decls): Call -gen-attr-accessors. Update terminatinig initializer. (gen-hw-decls): Ditto. (gen-operand-decls): Ditto. (gen-insn-decls): Ditto. (-gen-hash-defines): Generate code to include "opcde/cgen-bitset.h" (gen-insn-table): Update terminating initializer. (-gen-cpu-open): Update generation of @arch@_cgen_rebuild_tables, @arch@_cgen_cpu_open, @arch@_cgen_cpu_close. * attr.scm (charmask-bytes): New function. (bitset-attr->charmask): New function. (): Handle isa-attributes specially. Also handle differences for SID-SIMULATOR. (): Handle differences for SID-SIMULATOR. (): Ditto. include/ChangeLog: 2003-09-29 Dave Brolley * dis-asm.h (disassemble_info): insn_sets now (void *) to allow for more exotic underlying types to be used. include/opcode/ChangeLog: 2005-02-16 Dave Brolley * cgen-bitset.h: Rename CGEN_ISA_MASK to CGEN_BITSET. Rename cgen_isa_mask_* to cgen_bitset_*. * cgen.h: Likewise. 2003-10-21 Richard Sandiford * cgen.h (CGEN_BITSET_ATTR_VALUE): Fix definition. (CGEN_ATTR_ENTRY): Change "value" to type "unsigned". (CGEN_CPU_TABLE): Make isas a ponter. 2003-09-29 Dave Brolley * cgen.h (CGEN_ATTR_VALUE_BITSET_TYPE): New typedef. (CGEN_ATTR_VALUE_ENUM_TYPE): Ditto. (CGEN_ATTR_VALUE_TYPE): Use these new typedefs. 2002-12-13 Dave Brolley * cgen.h (symcat.h): #include it. (cgen-bitset.h): #include it. (CGEN_ATTR_VALUE_TYPE): Now a union. (CGEN_ATTR_VALUE): Reference macros generated in opcodes/-desc.h. (CGEN_ATTR_ENTRY): 'value' now unsigned. (cgen_cpu_desc): 'isas' now (CGEN_ISA_MASK*). * cgen-bitset.h: New file. opcodes/ChangeLog: 2005-09-19 Dave Brolley * disassemble.c (disassemble_init_for_target): Add 'break' to case for bfd_arch_tic4x. Use cgen_bitset_create and cgen_bitset_set for bfd_arch_m32c case. 2005-02-16 Dave Brolley * cgen-dis.in: Rename CGEN_ISA_MASK to CGEN_BITSET. Rename cgen_isa_mask_* to cgen_bitset_*. * cgen-opc.c: Likewise. 2003-11-28 Richard Sandiford * cgen-dis.in (print_insn_@arch@): Fix comparison with cached isas. * *-dis.c: Regenerate. 2003-06-05 DJ Delorie * cgen-dis.in (print_insn_@arch@): Copy prev_isas, don't assign it, as it may point to a reused buffer. Set prev_isas when we change cpus. 2002-12-13 Dave Brolley * cgen-opc.c (cgen_isa_mask_create): New support function for CGEN_ISA_MASK. (cgen_isa_mask_init): Ditto. (cgen_isa_mask_clear): Ditto. (cgen_isa_mask_add): Ditto. (cgen_isa_mask_set): Ditto. (cgen_isa_supported): Ditto. (cgen_isa_mask_compare): Ditto. (cgen_isa_mask_intersection): Ditto. (cgen_isa_mask_copy): Ditto. (cgen_isa_mask_combine): Ditto. * cgen-dis.in (libiberty.h): #include it. (isas): Renamed from 'isa' and now (CGEN_ISA_MASK *). (print_insn_@arch@): Use CGEN_ISA_MASK and support functions. * Makefile.am (CGENDEPS): Add utils-cgen.scm and attrs.scm. * Makefile.in: Regenerated. sid/component/cgen-cpu/ChangeLog: 2003-10-07 Dave Brolley * tracedis.cxx (cgen_disassemble): Rename isa_mask to isas. Now (CGEN_ISA_MASK*). * tracedis.h (opcode/cgen-bitset.h): #include it. (cgen_disassemble): Rename isa_mask to isas. Now (CGEN_ISA_MASK*). (cgen_bi_endian_cpu::disassemble): 'isas' now (CGEN_ISA_MASK *). * cgen-cpu.h (opcode/cgen-bitset.h): #include it. (cgen_bi_endian_cpu::disassemble): 'isas' now (CGEN_ISA_MASK *). * compCGEN.cxx (cgen_disassemble): Rename isa_mask to isas. Now (CGEN_ISA_MASK*). cpu/ChangeLog: 2003-09-24 Dave Brolley * frv.opc: Use CGEN_ATTR_VALUE_ENUM_TYPE in place of CGEN_ATTR_VALUE_TYPE. * m32c.opc (m32c_cgen_insn_supported): Use CGEN_INSN_BITSET_ATTR_VALUE. Use cgen_bitset_intersect_p. gas/ChangeLog: 2005-09-19 Dave Brolley * config/tc-m32c.c (default_isa): New static variable. (m32c_isa): Now of type CGEN_BITSET. (md_begin): Pass &m32c_isa to m32c_cgen_cpu_open. sim/frv/ChangeLog: 2003-09-29 Dave Brolley * frv-sim.h: Use CGEN_ATTR_VALUE_ENUM_TYPE in place of CGEN_ATTR_VALUE_TYPE. * mloop.in: Ditto. * pipeline.c: Ditto. * traps.c: Ditto. --------------020808060507000302010409 Content-Type: text/plain; name="cgen-bitset.h" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="cgen-bitset.h" Content-length: 2028 /* Header file the type CGEN_BITSET. Copyright 2002, 2005 Free Software Foundation, Inc. This file is part of GDB, the GNU debugger, and the GNU Binutils. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef CGEN_BITSET_H #define CGEN_BITSET_H #ifdef __cplusplus extern "C" { #endif /* A bitmask represented as a string. Each member of the set is represented as a bit in the string. Bytes are indexed from left to right in the string and bits from most significant to least within each byte. For example, the bit representing member number 6 is (set->bits[0] & 0x02). */ typedef struct cgen_bitset { unsigned length; char *bits; } CGEN_BITSET; extern CGEN_BITSET *cgen_bitset_create PARAMS ((unsigned)); extern void cgen_bitset_init PARAMS ((CGEN_BITSET *, unsigned)); extern void cgen_bitset_clear PARAMS ((CGEN_BITSET *)); extern void cgen_bitset_add PARAMS ((CGEN_BITSET *, unsigned)); extern void cgen_bitset_set PARAMS ((CGEN_BITSET *, unsigned)); extern int cgen_bitset_compare PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); extern void cgen_bitset_union PARAMS ((CGEN_BITSET *, CGEN_BITSET *, CGEN_BITSET *)); extern int cgen_bitset_intersect_p PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); extern int cgen_bitset_contains PARAMS ((CGEN_BITSET *, unsigned)); extern CGEN_BITSET *cgen_bitset_copy PARAMS ((CGEN_BITSET *)); #ifdef __cplusplus } // extern "C" #endif #endif --------------020808060507000302010409 Content-Type: text/plain; name="cgen-bitset.patch.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="cgen-bitset.patch.txt" Content-length: 657906 ? include/opcode/cgen-bitset.h Index: cgen/attr.scm =================================================================== RCS file: /cvs/src/src/cgen/attr.scm,v retrieving revision 1.3 diff -c -p -r1.3 attr.scm *** cgen/attr.scm 16 Jul 2003 05:35:47 -0000 1.3 --- cgen/attr.scm 19 Sep 2005 19:48:42 -0000 *************** *** 1,5 **** ; Attributes. ! ; Copyright (C) 2000 Red Hat, Inc. ; This file is part of CGEN. ; See file COPYING.CGEN for details. --- 1,5 ---- ; Attributes. ! ; Copyright (C) 2000, 2003 Red Hat, Inc. ; This file is part of CGEN. ; See file COPYING.CGEN for details. *************** *** 613,618 **** --- 613,654 ---- (map string->symbol (string-cut (->string x) #\,)) ) + ; Generate a list representing a bit mask of the indices of 'values' + ; within 'all-values'. Each element in the resulting list represents a byte. + ; Both bits and bytes are indexed from left to right starting at 0 + ; with 8 bits in a byte. + (define (charmask-bytes values all-values vec-length) + (logit 3 "charmask-bytes for " values " " all-values "\n") + (let ((result (make-vector vec-length 0)) + (indices (map (lambda (name) + (list-ref (map cadr all-values) + (element-lookup-index name (map car all-values) 0))) + values))) + (logit 3 "indices: " indices "\n") + (for-each (lambda (x) + (let* ((byteno (quotient x 8)) + (bitno (- 7 (remainder x 8))) + (byteval (logior (vector-ref result byteno) + (ash 1 bitno)))) + (vector-set! result byteno byteval))) + indices) + (logit 3 "result: " (vector->list result) "\n") + (vector->list result)) + ) + + ; Convert a bitset value into a bit string based on the + ; index of each member in values + (define (bitset-attr->charmask value values) + (let* ((values-names (map car values)) + (values-values (map cadr values)) + (vec-length (+ 1 (quotient (apply max values-values) 8)))) + (string-append "{ " (number->string vec-length) ", \"" + (string-map (lambda (x) + (string-append "\\x" (number->hex x))) + (charmask-bytes (bitset-attr->list value) + values vec-length)) + "\" }")) + ) ; Return the enum of ATTR-NAME for type TYPE. ; TYPE is one of 'ifld, 'hw, 'operand, 'insn. *************** *** 916,922 **** ; (maybe utils-cgen.scm?) and there's only a few of them. (method-make! ! 'gen-value-for-defn (lambda (self value) (if (not value) "0" --- 952,958 ---- ; (maybe utils-cgen.scm?) and there's only a few of them. (method-make! ! 'gen-value-for-defn-raw (lambda (self value) (if (not value) "0" *************** *** 925,954 **** ) (method-make! 'gen-value-for-defn (lambda (self value) ! (string-drop1 ! (string-upcase ! (string-map (lambda (x) ! (string-append "|(1<<" ! (gen-sym self) ! "_" (gen-c-symbol x) ")")) ! (bitset-attr->list value))))) ) (method-make! 'gen-value-for-defn (lambda (self value) ! (number->string value)) ) (method-make! ! 'gen-value-for-defn (lambda (self value) (string-upcase (gen-c-symbol (string-append (obj:str-name self) "_" ! (symbol->string value))))) ) ; Called before loading a .cpu file to initialize. --- 961,1042 ---- ) (method-make! + 'gen-value-for-defn + (lambda (self value) + (send self 'gen-value-for-defn-raw value)) + ) + + (method-make! + 'gen-value-for-defn-raw + (lambda (self value) + (if (string=? (string-downcase (gen-sym self)) "isa") + (bitset-attr->charmask value (elm-get self 'values)) + (string-drop1 + (string-upcase + (string-map (lambda (x) + (string-append "|(1<<" + (gen-sym self) + "_" (gen-c-symbol x) ")")) + (bitset-attr->list value))))) + ) + ) + + (method-make! 'gen-value-for-defn (lambda (self value) ! (string-append ! "{ " ! (if (string=? (string-downcase (gen-sym self)) "isa") ! (bitset-attr->charmask value (elm-get self 'values)) ! (string-append ! "{ " ! (string-drop1 ! (string-upcase ! (string-map (lambda (x) ! (string-append "|(1<<" ! (gen-sym self) ! "_" (gen-c-symbol x) ")")) ! (bitset-attr->list value)))) ! ", 0 }")) ! " }") ! ) ! ) ! ! (method-make! ! 'gen-value-for-defn-raw ! (lambda (self value) ! (number->string value) ! ) ) (method-make! 'gen-value-for-defn (lambda (self value) ! (string-append ! "{ { " ! (send self 'gen-value-for-defn-raw value) ! ", 0 } }") ! ) ) (method-make! ! 'gen-value-for-defn-raw (lambda (self value) (string-upcase (gen-c-symbol (string-append (obj:str-name self) "_" ! (symbol->string value)))) ! ) ! ) ! ! (method-make! ! 'gen-value-for-defn ! (lambda (self value) ! (string-append ! "{ { " ! (send self 'gen-value-for-defn-raw value) ! ", 0 } }") ! ) ) ; Called before loading a .cpu file to initialize. Index: cgen/desc-cpu.scm =================================================================== RCS file: /cvs/src/src/cgen/desc-cpu.scm,v retrieving revision 1.21 diff -c -p -r1.21 desc-cpu.scm *** cgen/desc-cpu.scm 1 Jul 2005 11:16:30 -0000 1.21 --- cgen/desc-cpu.scm 19 Sep 2005 19:48:42 -0000 *************** static const CGEN_MACH @arch@_cgen_mach_ *** 114,119 **** --- 114,120 ---- "/* Ifield support. */\n\n" "/* Ifield attribute indices. */\n\n" (gen-attr-enum-decl "cgen_ifld" (current-ifld-attr-list)) + (-gen-attr-accessors "cgen_ifld" (current-ifld-attr-list)) (gen-enum-decl 'ifield_type "@arch@ ifield types" "@ARCH@_" (append (gen-obj-list-enums (non-derived-ifields (current-ifld-list))) *************** const CGEN_IFLD @arch@_cgen_ifld_table[] *** 161,167 **** " },\n"))) ifld-list) "\ ! { 0, 0, 0, 0, 0, 0, {0, {0}} } }; #undef A --- 162,168 ---- " },\n"))) ifld-list) "\ ! { 0, 0, 0, 0, 0, 0, " (gen-obj-attr-end-defn all-attrs num-non-bools) " } }; #undef A *************** const CGEN_IFLD @arch@_cgen_ifld_table[] *** 180,185 **** --- 181,187 ---- (string-list "/* Hardware attribute indices. */\n\n" (gen-attr-enum-decl "cgen_hw" (current-hw-attr-list)) + (-gen-attr-accessors "cgen_hw" (current-hw-attr-list)) (gen-enum-decl 'cgen_hw_type "@arch@ hardware types" "HW_" ; FIXME: @ARCH@_ (append (nub (map (lambda (hw) *************** const CGEN_HW_ENTRY @arch@_cgen_hw_table *** 281,287 **** " },\n"))) (current-hw-list)) "\ ! { 0, 0, CGEN_ASM_NONE, 0, {0, {0}} } }; #undef A --- 283,289 ---- " },\n"))) (current-hw-list)) "\ ! { 0, 0, CGEN_ASM_NONE, 0, " (gen-obj-attr-end-defn all-attrs num-non-bools) " } }; #undef A *************** const CGEN_HW_ENTRY @arch@_cgen_hw_table *** 298,303 **** --- 300,307 ---- (define (-gen-hash-defines) (logit 2 "Generating #define's ...\n") (string-list + "#include \"opcode/cgen-bitset.h\"\n" + "\n" "#define CGEN_ARCH @arch@\n\n" "/* Given symbol S, return @arch@_cgen_. */\n" (gen-define-with-symcat "CGEN_SYM(s) @arch@" "_cgen_" "s") *************** const CGEN_HW_ENTRY @arch@_cgen_hw_table *** 365,370 **** --- 369,375 ---- (string-list "/* Operand attribute indices. */\n\n" (gen-attr-enum-decl "cgen_operand" (current-op-attr-list)) + (-gen-attr-accessors "cgen_operand" (current-op-attr-list)) (gen-enum-decl 'cgen_operand_type "@arch@ operand types" "@ARCH@_OPERAND_" (nub (append (gen-obj-list-enums (current-op-list)) *************** const CGEN_OPERAND @arch@_cgen_operand_t *** 475,481 **** ))))) (current-op-list)) "/* sentinel */\n\ ! { 0, 0, 0, 0, 0,\n { 0, { (const PTR) 0 } },\n { 0, { 0 } } } }; #undef A --- 480,486 ---- ))))) (current-op-list)) "/* sentinel */\n\ ! { 0, 0, 0, 0, 0,\n { 0, { (const PTR) 0 } },\n " (gen-obj-attr-end-defn all-attrs num-non-bools) " } }; #undef A *************** const CGEN_OPERAND @arch@_cgen_operand_t *** 494,499 **** --- 499,505 ---- (string-list "/* Insn attribute indices. */\n\n" (gen-attr-enum-decl "cgen_insn" (current-insn-attr-list)) + (-gen-attr-accessors "cgen_insn" (current-insn-attr-list)) ) ) *************** static const CGEN_IBASE @arch@_cgen_insn *** 552,558 **** /* Special null first entry. A `num' value of zero is thus invalid. Also, the special `invalid' insn resides here. */ ! { 0, 0, 0, 0, {0, {0}} },\n" (lambda () (string-write-map (lambda (insn) --- 558,564 ---- /* Special null first entry. A `num' value of zero is thus invalid. Also, the special `invalid' insn resides here. */ ! { 0, 0, 0, 0, " (gen-obj-attr-end-defn all-attrs num-non-bools) " },\n" (lambda () (string-write-map (lambda (insn) *************** static void *** 696,702 **** @arch@_cgen_rebuild_tables (CGEN_CPU_TABLE *cd) { int i; ! unsigned int isas = cd->isas; unsigned int machs = cd->machs; cd->int_insn_p = CGEN_INT_INSN_P; --- 702,708 ---- @arch@_cgen_rebuild_tables (CGEN_CPU_TABLE *cd) { int i; ! CGEN_BITSET *isas = cd->isas; unsigned int machs = cd->machs; cd->int_insn_p = CGEN_INT_INSN_P; *************** static void *** 708,714 **** cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */ cd->max_insn_bitsize = 0; for (i = 0; i < MAX_ISAS; ++i) ! if (((1 << i) & isas) != 0) { const CGEN_ISA *isa = & @arch@_cgen_isa_table[i]; --- 714,720 ---- cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */ cd->max_insn_bitsize = 0; for (i = 0; i < MAX_ISAS; ++i) ! if (cgen_bitset_contains (isas, i)) { const CGEN_ISA *isa = & @arch@_cgen_isa_table[i]; *************** CGEN_CPU_DESC *** 793,799 **** { CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE)); static int init_p; ! unsigned int isas = 0; /* 0 = \"unspecified\" */ unsigned int machs = 0; /* 0 = \"unspecified\" */ enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN; va_list ap; --- 799,805 ---- { CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE)); static int init_p; ! CGEN_BITSET *isas = 0; /* 0 = \"unspecified\" */ unsigned int machs = 0; /* 0 = \"unspecified\" */ enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN; va_list ap; *************** CGEN_CPU_DESC *** 812,818 **** switch (arg_type) { case CGEN_CPU_OPEN_ISAS : ! isas = va_arg (ap, unsigned int); break; case CGEN_CPU_OPEN_MACHS : machs = va_arg (ap, unsigned int); --- 818,824 ---- switch (arg_type) { case CGEN_CPU_OPEN_ISAS : ! isas = va_arg (ap, CGEN_BITSET *); break; case CGEN_CPU_OPEN_MACHS : machs = va_arg (ap, unsigned int); *************** CGEN_CPU_DESC *** 843,851 **** machs = (1 << MAX_MACHS) - 1; /* Base mach is always selected. */ machs |= 1; - /* ISA unspecified means \"all\". */ - if (isas == 0) - isas = (1 << MAX_ISAS) - 1; if (endian == CGEN_ENDIAN_UNKNOWN) { /* ??? If target has only one, could have a default. */ --- 849,854 ---- *************** CGEN_CPU_DESC *** 853,859 **** abort (); } ! cd->isas = isas; cd->machs = machs; cd->endian = endian; /* FIXME: for the sparc case we can determine insn-endianness statically. --- 856,862 ---- abort (); } ! cd->isas = cgen_bitset_copy (isas); cd->machs = machs; cd->endian = endian; /* FIXME: for the sparc case we can determine insn-endianness statically. Index: cgen/desc.scm =================================================================== RCS file: /cvs/src/src/cgen/desc.scm,v retrieving revision 1.4 diff -c -p -r1.4 desc.scm *** cgen/desc.scm 16 Jul 2003 05:35:47 -0000 1.4 --- cgen/desc.scm 19 Sep 2005 19:48:42 -0000 *************** *** 1,5 **** ; General cpu info generator support. ! ; Copyright (C) 2000 Red Hat, Inc. ; This file is part of CGEN. ; ; This file generates C versions of the more salient parts of the description --- 1,5 ---- ; General cpu info generator support. ! ; Copyright (C) 2000, 2003 Red Hat, Inc. ; This file is part of CGEN. ; ; This file generates C versions of the more salient parts of the description *************** static const CGEN_ATTR_ENTRY bool_attr[] *** 128,134 **** (if (string? (cadr e)) (cadr e) (number->string (cadr e))) ; value ! ", {0, {0}}, 0, 0" " },\n" )) (elm-get self 'values))) --- 128,134 ---- (if (string? (cadr e)) (cadr e) (number->string (cadr e))) ; value ! ", {0, {{{0, 0}}}}, 0, 0" " },\n" )) (elm-get self 'values))) Index: cgen/mach.scm =================================================================== RCS file: /cvs/src/src/cgen/mach.scm,v retrieving revision 1.9 diff -c -p -r1.9 mach.scm *** cgen/mach.scm 15 Jun 2005 21:28:18 -0000 1.9 --- cgen/mach.scm 19 Sep 2005 19:48:42 -0000 *************** *** 1,5 **** ; CPU architecture description. ! ; Copyright (C) 2000 Red Hat, Inc. ; This file is part of CGEN. ; See file COPYING.CGEN for details. --- 1,5 ---- ; CPU architecture description. ! ; Copyright (C) 2000, 2003 Red Hat, Inc. ; This file is part of CGEN. ; See file COPYING.CGEN for details. *************** *** 902,909 **** (apply min (cons 65535 (map insn-length (find (lambda (insn) (and (not (has-attr? insn 'ALIAS)) ! (eq? (obj-attr-value insn 'ISA) ! (obj:name isa)))) (non-multi-insns (current-insn-list)))))) ) --- 902,908 ---- (apply min (cons 65535 (map insn-length (find (lambda (insn) (and (not (has-attr? insn 'ALIAS)) ! (isa-supports? isa insn))) (non-multi-insns (current-insn-list)))))) ) *************** *** 913,920 **** (apply max (cons 0 (map insn-length (find (lambda (insn) (and (not (has-attr? insn 'ALIAS)) ! (eq? (obj-attr-value insn 'ISA) ! (obj:name isa)))) (non-multi-insns (current-insn-list)))))) ) --- 912,918 ---- (apply max (cons 0 (map insn-length (find (lambda (insn) (and (not (has-attr? insn 'ALIAS)) ! (isa-supports? isa insn))) (non-multi-insns (current-insn-list)))))) ) Index: cgen/sid-cpu.scm =================================================================== RCS file: /cvs/src/src/cgen/sid-cpu.scm,v retrieving revision 1.13 diff -c -p -r1.13 sid-cpu.scm *** cgen/sid-cpu.scm 29 Jul 2005 19:25:33 -0000 1.13 --- cgen/sid-cpu.scm 19 Sep 2005 19:48:42 -0000 *************** *** 80,85 **** --- 80,87 ---- #ifndef DESC_@ARCH@_H #define DESC_@ARCH@_H + #include \"opcode/cgen-bitset.h\" + namespace @arch@ { \n" *************** using namespace cgen; *** 650,660 **** "_memory") m 1)) modes))) - (logit 2 "Generating writer function ...\n") (string-append " - void @prefix@::write_stacks::writeback (int tick, @cpu@::@cpu@_cpu* current_cpu) { " --- 652,660 ---- Index: cgen/sid.scm =================================================================== RCS file: /cvs/src/src/cgen/sid.scm,v retrieving revision 1.15 diff -c -p -r1.15 sid.scm *** cgen/sid.scm 15 Jun 2005 21:28:19 -0000 1.15 --- cgen/sid.scm 19 Sep 2005 19:48:42 -0000 *************** *** 230,236 **** (attr-default attr)))) ; FIXME: Are we missing attr-prefix here? (string-append ", " ! (send attr 'gen-value-for-defn val)))) all-non-bools))) " }")) ) --- 230,236 ---- (attr-default attr)))) ; FIXME: Are we missing attr-prefix here? (string-append ", " ! (send attr 'gen-value-for-defn-raw val)))) all-non-bools))) " }")) ) Index: cgen/utils-cgen.scm =================================================================== RCS file: /cvs/src/src/cgen/utils-cgen.scm,v retrieving revision 1.6 diff -c -p -r1.6 utils-cgen.scm *** cgen/utils-cgen.scm 16 Dec 2004 21:24:07 -0000 1.6 --- cgen/utils-cgen.scm 19 Sep 2005 19:48:42 -0000 *************** *** 1,5 **** ; CGEN Utilities. ! ; Copyright (C) 2000 Red Hat, Inc. ; This file is part of CGEN. ; See file COPYING.CGEN for details. ; --- 1,5 ---- ; CGEN Utilities. ! ; Copyright (C) 2000, 2002, 2003 Red Hat, Inc. ; This file is part of CGEN. ; See file COPYING.CGEN for details. ; *************** *** 467,472 **** --- 467,530 ---- ; Attributes + ; Return the C/C++ type to use to hold a value for attribute ATTR. + + (define (gen-attr-type attr) + (if (string=? (string-downcase (gen-sym attr)) "isa") + "CGEN_BITSET" + (case (attr-kind attr) + ((boolean) "int") + ((bitset) "unsigned int") + ((integer) "int") + ((enum) (string-append "enum " (string-downcase (gen-sym attr)) "_attr")) + )) + ) + + ; Return C macros for accessing an object's attributes ATTRS. + ; PREFIX is one of "cgen_ifld", "cgen_hw", "cgen_operand", "cgen_insn". + ; ATTRS is an alist of attribute values. The value is unimportant except that + ; it is used to determine bool/non-bool. + ; Non-bools need to be separated from bools as they're each recorded + ; differently. Non-bools are recorded in an int for each. All bools are + ; combined into one int to save space. + ; ??? We assume there is at least one bool. + + (define (-gen-attr-accessors prefix attrs) + (string-append + "/* " prefix " attribute accessor macros. */\n" + (string-map (lambda (attr) + (string-append + "#define CGEN_ATTR_" + (string-upcase prefix) + "_" + (string-upcase (gen-sym attr)) + "_VALUE(attrs) " + (if (bool-attr? attr) + (string-append + "(((attrs)->bool & (1 << " + (string-upcase prefix) + "_" + (string-upcase (gen-sym attr)) + ")) != 0)") + (string-append + "((attrs)->nonbool[" + (string-upcase prefix) + "_" + (string-upcase (gen-sym attr)) + "-" + (string-upcase prefix) + "_START_NBOOLS-1]." + (case (attr-kind attr) + ((bitset) + (if (string=? (string-downcase (gen-sym attr)) "isa") + "" + "non")) + (else "non")) + "bitset)")) + "\n")) + attrs) + "\n") + ) ; Return C code to declare an enum of attributes ATTRS. ; PREFIX is one of "cgen_ifld", "cgen_hw", "cgen_operand", "cgen_insn". ; ATTRS is an alist of attribute values. The value is unimportant except that *************** *** 565,570 **** --- 623,649 ---- )) ) + ; Return the C definition of the terminating entry of an object's attributes. + ; ALL-ATTRS is an ordered alist of all attributes. + ; "ordered" means all the non-boolean attributes are at the front and + ; duplicate entries have been removed. + + (define (gen-obj-attr-end-defn all-attrs num-non-bools) + (let ((all-non-bools (list-take num-non-bools all-attrs))) + (string-append + "{ 0, {" + (if (null? all-non-bools) + " { 0, 0 }" + (string-drop1 ; drop the leading "," + (string-map (lambda (attr) + (let ((val (attr-default attr))) + ; FIXME: Are we missing attr-prefix here? + (string-append ", " + (send attr 'gen-value-for-defn val)))) + all-non-bools))) + " } }" + )) + ) ; Return a boolean indicating if ATLIST indicates a CTI insn. (define (atlist-cti? atlist) Index: cpu/frv.opc =================================================================== RCS file: /cvs/src/src/cpu/frv.opc,v retrieving revision 1.13 diff -c -p -r1.13 frv.opc *** cpu/frv.opc 1 Jul 2005 11:16:30 -0000 1.13 --- cpu/frv.opc 19 Sep 2005 19:48:42 -0000 *************** *** 50,56 **** #define FRV_VLIW_SIZE 8 /* fr550 has largest vliw size of 8. */ #define PAD_VLIW_COMBO ,UNIT_NIL,UNIT_NIL,UNIT_NIL,UNIT_NIL ! typedef CGEN_ATTR_VALUE_TYPE VLIW_COMBO[FRV_VLIW_SIZE]; typedef struct { --- 50,56 ---- #define FRV_VLIW_SIZE 8 /* fr550 has largest vliw size of 8. */ #define PAD_VLIW_COMBO ,UNIT_NIL,UNIT_NIL,UNIT_NIL,UNIT_NIL ! typedef CGEN_ATTR_VALUE_ENUM_TYPE VLIW_COMBO[FRV_VLIW_SIZE]; typedef struct { *************** typedef struct *** 58,72 **** int constraint_violation; unsigned long mach; unsigned long elf_flags; ! CGEN_ATTR_VALUE_TYPE * unit_mapping; VLIW_COMBO * current_vliw; ! CGEN_ATTR_VALUE_TYPE major[FRV_VLIW_SIZE]; const CGEN_INSN * insn[FRV_VLIW_SIZE]; } FRV_VLIW; ! int frv_is_branch_major (CGEN_ATTR_VALUE_TYPE, unsigned long); ! int frv_is_float_major (CGEN_ATTR_VALUE_TYPE, unsigned long); ! int frv_is_media_major (CGEN_ATTR_VALUE_TYPE, unsigned long); int frv_is_branch_insn (const CGEN_INSN *); int frv_is_float_insn (const CGEN_INSN *); int frv_is_media_insn (const CGEN_INSN *); --- 58,72 ---- int constraint_violation; unsigned long mach; unsigned long elf_flags; ! CGEN_ATTR_VALUE_ENUM_TYPE * unit_mapping; VLIW_COMBO * current_vliw; ! CGEN_ATTR_VALUE_ENUM_TYPE major[FRV_VLIW_SIZE]; const CGEN_INSN * insn[FRV_VLIW_SIZE]; } FRV_VLIW; ! int frv_is_branch_major (CGEN_ATTR_VALUE_ENUM_TYPE, unsigned long); ! int frv_is_float_major (CGEN_ATTR_VALUE_ENUM_TYPE, unsigned long); ! int frv_is_media_major (CGEN_ATTR_VALUE_ENUM_TYPE, unsigned long); int frv_is_branch_insn (const CGEN_INSN *); int frv_is_float_insn (const CGEN_INSN *); int frv_is_media_insn (const CGEN_INSN *); *************** int spr_valid (long); *** 83,89 **** development tree. */ bfd_boolean ! frv_is_branch_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) { switch (mach) { --- 83,89 ---- development tree. */ bfd_boolean ! frv_is_branch_major (CGEN_ATTR_VALUE_ENUM_TYPE major, unsigned long mach) { switch (mach) { *************** frv_is_branch_major (CGEN_ATTR_VALUE_TYP *** 107,113 **** /* Returns TRUE if {MAJOR,MACH} supports floating point insns. */ bfd_boolean ! frv_is_float_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) { switch (mach) { --- 107,113 ---- /* Returns TRUE if {MAJOR,MACH} supports floating point insns. */ bfd_boolean ! frv_is_float_major (CGEN_ATTR_VALUE_ENUM_TYPE major, unsigned long mach) { switch (mach) { *************** frv_is_float_major (CGEN_ATTR_VALUE_TYPE *** 126,132 **** /* Returns TRUE if {MAJOR,MACH} supports media insns. */ bfd_boolean ! frv_is_media_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) { switch (mach) { --- 126,132 ---- /* Returns TRUE if {MAJOR,MACH} supports media insns. */ bfd_boolean ! frv_is_media_major (CGEN_ATTR_VALUE_ENUM_TYPE major, unsigned long mach) { switch (mach) { *************** static VLIW_COMBO fr550_allowed_vliw[] = *** 270,276 **** /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_TYPE fr400_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 270,276 ---- /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_ENUM_TYPE fr400_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** static CGEN_ATTR_VALUE_TYPE fr400_unit_m *** 305,311 **** /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_TYPE fr450_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 305,311 ---- /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_ENUM_TYPE fr450_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** static CGEN_ATTR_VALUE_TYPE fr450_unit_m *** 337,343 **** /* MCLRACC-1*/ UNIT_FM0 /* mclracc,A==1 insn only in FM0 unit. */ }; ! static CGEN_ATTR_VALUE_TYPE fr500_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 337,343 ---- /* MCLRACC-1*/ UNIT_FM0 /* mclracc,A==1 insn only in FM0 unit. */ }; ! static CGEN_ATTR_VALUE_ENUM_TYPE fr500_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** static CGEN_ATTR_VALUE_TYPE fr500_unit_m *** 369,375 **** /* MCLRACC-1*/ UNIT_FM01 /* mclracc,A==1 in FM0 or FM1 unit. */ }; ! static CGEN_ATTR_VALUE_TYPE fr550_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 369,375 ---- /* MCLRACC-1*/ UNIT_FM01 /* mclracc,A==1 in FM0 or FM1 unit. */ }; ! static CGEN_ATTR_VALUE_ENUM_TYPE fr550_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** frv_vliw_reset (FRV_VLIW *vliw, unsigned *** 435,441 **** *_allowed_vliw tables above. */ static bfd_boolean match_unit (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE unit1, CGEN_ATTR_VALUE_TYPE unit2) { /* Map any specialized implementation units to actual ones. */ unit1 = vliw->unit_mapping[unit1]; --- 435,441 ---- *_allowed_vliw tables above. */ static bfd_boolean match_unit (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE unit1, CGEN_ATTR_VALUE_ENUM_TYPE unit2) { /* Map any specialized implementation units to actual ones. */ unit1 = vliw->unit_mapping[unit1]; *************** match_vliw (VLIW_COMBO *vliw1, VLIW_COMB *** 487,493 **** If one is found then return it. Otherwise return NULL. */ static VLIW_COMBO * ! add_next_to_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE unit) { int next = vliw->next_slot; VLIW_COMBO *current = vliw->current_vliw; --- 487,493 ---- If one is found then return it. Otherwise return NULL. */ static VLIW_COMBO * ! add_next_to_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE unit) { int next = vliw->next_slot; VLIW_COMBO *current = vliw->current_vliw; *************** add_next_to_vliw (FRV_VLIW *vliw, CGEN_A *** 518,524 **** Returns TRUE if found, FALSE otherwise. */ static bfd_boolean ! find_major_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { int i; --- 518,524 ---- Returns TRUE if found, FALSE otherwise. */ static bfd_boolean ! find_major_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { int i; *************** find_major_in_vliw (FRV_VLIW *vliw, CGEN *** 533,539 **** types. */ static bfd_boolean ! fr400_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { /* In the cpu file, all media insns are represented as being allowed in both media units. This makes it easier since this is the case for fr500. --- 533,539 ---- types. */ static bfd_boolean ! fr400_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { /* In the cpu file, all media insns are represented as being allowed in both media units. This makes it easier since this is the case for fr500. *************** fr400_check_insn_major_constraints (FRV_ *** 553,561 **** } static bfd_boolean ! fr450_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { ! CGEN_ATTR_VALUE_TYPE other_major; /* Our caller guarantees there's at least one other instruction. */ other_major = CGEN_INSN_ATTR_VALUE (vliw->insn[0], CGEN_INSN_FR450_MAJOR); --- 553,561 ---- } static bfd_boolean ! fr450_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { ! CGEN_ATTR_VALUE_ENUM_TYPE other_major; /* Our caller guarantees there's at least one other instruction. */ other_major = CGEN_INSN_ATTR_VALUE (vliw->insn[0], CGEN_INSN_FR450_MAJOR); *************** fr450_check_insn_major_constraints (FRV_ *** 588,594 **** } static bfd_boolean ! find_unit_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE unit) { int i; --- 588,594 ---- } static bfd_boolean ! find_unit_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE unit) { int i; *************** find_unit_in_vliw (FRV_VLIW *vliw, CGEN_ *** 601,608 **** static bfd_boolean find_major_in_slot (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE major, ! CGEN_ATTR_VALUE_TYPE slot) { int i; --- 601,608 ---- static bfd_boolean find_major_in_slot (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE major, ! CGEN_ATTR_VALUE_ENUM_TYPE slot) { int i; *************** fr550_find_float_in_vliw (FRV_VLIW *vliw *** 657,667 **** static bfd_boolean fr550_check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE major, const CGEN_INSN *insn) { ! CGEN_ATTR_VALUE_TYPE unit; ! CGEN_ATTR_VALUE_TYPE slot = (*vliw->current_vliw)[vliw->next_slot]; switch (slot) { case UNIT_I2: --- 657,667 ---- static bfd_boolean fr550_check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE major, const CGEN_INSN *insn) { ! CGEN_ATTR_VALUE_ENUM_TYPE unit; ! CGEN_ATTR_VALUE_ENUM_TYPE slot = (*vliw->current_vliw)[vliw->next_slot]; switch (slot) { case UNIT_I2: *************** fr550_check_insn_major_constraints (FRV_ *** 707,713 **** } static bfd_boolean ! fr500_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { /* TODO: A table might be faster for some of the more complex instances here. */ --- 707,713 ---- } static bfd_boolean ! fr500_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { /* TODO: A table might be faster for some of the more complex instances here. */ *************** fr500_check_insn_major_constraints (FRV_ *** 815,821 **** static bfd_boolean check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE major, const CGEN_INSN *insn) { switch (vliw->mach) --- 815,821 ---- static bfd_boolean check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE major, const CGEN_INSN *insn) { switch (vliw->mach) *************** int *** 841,848 **** frv_vliw_add_insn (FRV_VLIW *vliw, const CGEN_INSN *insn) { int index; ! CGEN_ATTR_VALUE_TYPE major; ! CGEN_ATTR_VALUE_TYPE unit; VLIW_COMBO *new_vliw; if (vliw->constraint_violation || CGEN_INSN_INVALID_P (insn)) --- 841,848 ---- frv_vliw_add_insn (FRV_VLIW *vliw, const CGEN_INSN *insn) { int index; ! CGEN_ATTR_VALUE_ENUM_TYPE major; ! CGEN_ATTR_VALUE_ENUM_TYPE unit; VLIW_COMBO *new_vliw; if (vliw->constraint_violation || CGEN_INSN_INVALID_P (insn)) Index: cpu/m32c.opc =================================================================== RCS file: /cvs/src/src/cpu/m32c.opc,v retrieving revision 1.5 diff -c -p -r1.5 m32c.opc *** cpu/m32c.opc 26 Jul 2005 03:21:50 -0000 1.5 --- cpu/m32c.opc 19 Sep 2005 19:48:42 -0000 *************** m32c_cgen_insn_supported (CGEN_CPU_DESC *** 775,788 **** const CGEN_INSN *insn) { int machs = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH); ! int isas = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_ISA); /* If attributes are absent, assume no restriction. */ if (machs == 0) machs = ~0; return ((machs & cd->machs) ! && (isas & cd->isas)); } /* Parse a set of registers, R0,R1,A0,A1,SB,FB. */ --- 775,788 ---- const CGEN_INSN *insn) { int machs = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH); ! CGEN_BITSET isas = CGEN_INSN_BITSET_ATTR_VALUE (insn, CGEN_INSN_ISA); /* If attributes are absent, assume no restriction. */ if (machs == 0) machs = ~0; return ((machs & cd->machs) ! && cgen_bitset_intersect_p (& isas, cd->isas)); } /* Parse a set of registers, R0,R1,A0,A1,SB,FB. */ Index: gas/config/tc-m32c.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-m32c.c,v retrieving revision 1.3 diff -c -p -r1.3 tc-m32c.c *** gas/config/tc-m32c.c 26 Jul 2005 03:21:52 -0000 1.3 --- gas/config/tc-m32c.c 19 Sep 2005 19:48:44 -0000 *************** static int insn_size; *** 87,98 **** /* Flags to set in the elf header */ static flagword m32c_flags = DEFAULT_FLAGS; ! static unsigned int m32c_isa = (1 << ISA_M16C); static void set_isa (enum isa_attr isa_num) { ! m32c_isa = (1 << isa_num); } static void s_bss (int); --- 87,99 ---- /* Flags to set in the elf header */ static flagword m32c_flags = DEFAULT_FLAGS; ! static char default_isa = 1 << (7 - ISA_M16C); ! static CGEN_BITSET m32c_isa = {1, & default_isa}; static void set_isa (enum isa_attr isa_num) { ! cgen_bitset_set (& m32c_isa, isa_num); } static void s_bss (int); *************** md_begin (void) *** 156,162 **** gas_cgen_cpu_desc = m32c_cgen_cpu_open (CGEN_CPU_OPEN_MACHS, cpu_mach, CGEN_CPU_OPEN_ENDIAN, CGEN_ENDIAN_BIG, ! CGEN_CPU_OPEN_ISAS, m32c_isa, CGEN_CPU_OPEN_END); m32c_cgen_init_asm (gas_cgen_cpu_desc); --- 157,163 ---- gas_cgen_cpu_desc = m32c_cgen_cpu_open (CGEN_CPU_OPEN_MACHS, cpu_mach, CGEN_CPU_OPEN_ENDIAN, CGEN_ENDIAN_BIG, ! CGEN_CPU_OPEN_ISAS, & m32c_isa, CGEN_CPU_OPEN_END); m32c_cgen_init_asm (gas_cgen_cpu_desc); Index: include/dis-asm.h =================================================================== RCS file: /cvs/src/src/include/dis-asm.h,v retrieving revision 1.56 diff -c -p -r1.56 dis-asm.h *** include/dis-asm.h 18 Aug 2005 03:49:39 -0000 1.56 --- include/dis-asm.h 19 Sep 2005 19:48:49 -0000 *************** typedef struct disassemble_info { *** 78,84 **** for processors with run-time-switchable instruction sets. The default, zero, means that there is no constraint. CGEN-based opcodes ports may use ISA_foo masks. */ ! unsigned long insn_sets; /* Some targets need information about the current section to accurately display insns. If this is NULL, the target disassembler function --- 78,84 ---- for processors with run-time-switchable instruction sets. The default, zero, means that there is no constraint. CGEN-based opcodes ports may use ISA_foo masks. */ ! void *insn_sets; /* Some targets need information about the current section to accurately display insns. If this is NULL, the target disassembler function Index: include/opcode/cgen.h =================================================================== RCS file: /cvs/src/src/include/opcode/cgen.h,v retrieving revision 1.22 diff -c -p -r1.22 cgen.h *** include/opcode/cgen.h 10 May 2005 10:21:12 -0000 1.22 --- include/opcode/cgen.h 19 Sep 2005 19:48:51 -0000 *************** with this program; if not, write to the *** 22,27 **** --- 22,29 ---- #ifndef CGEN_H #define CGEN_H + #include "symcat.h" + #include "cgen-bitset.h" /* ??? This file requires bfd.h but only to get bfd_vma. Seems like an awful lot to require just to get such a fundamental type. Perhaps the definition of bfd_vma can be moved outside of bfd.h. *************** typedef struct cgen_cpu_desc *CGEN_CPU_D *** 107,113 **** /* Type of attribute values. */ ! typedef int CGEN_ATTR_VALUE_TYPE; /* Struct to record attribute information. */ --- 109,121 ---- /* Type of attribute values. */ ! typedef CGEN_BITSET CGEN_ATTR_VALUE_BITSET_TYPE; ! typedef int CGEN_ATTR_VALUE_ENUM_TYPE; ! typedef union ! { ! CGEN_ATTR_VALUE_BITSET_TYPE bitset; ! CGEN_ATTR_VALUE_ENUM_TYPE nonbitset; ! } CGEN_ATTR_VALUE_TYPE; /* Struct to record attribute information. */ *************** struct { unsigned int bool; \ *** 153,159 **** #define CGEN_ATTR_VALUE(obj, attr_table, attr) \ ((unsigned int) (attr) < CGEN_ATTR_NBOOL_OFFSET \ ? ((CGEN_ATTR_BOOLS (attr_table) & CGEN_ATTR_MASK (attr)) != 0) \ ! : ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET])) /* Attribute name/value tables. These are used to assist parsing of descriptions at run-time. */ --- 161,169 ---- #define CGEN_ATTR_VALUE(obj, attr_table, attr) \ ((unsigned int) (attr) < CGEN_ATTR_NBOOL_OFFSET \ ? ((CGEN_ATTR_BOOLS (attr_table) & CGEN_ATTR_MASK (attr)) != 0) \ ! : ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].nonbitset)) ! #define CGEN_BITSET_ATTR_VALUE(obj, attr_table, attr) \ ! ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].bitset) /* Attribute name/value tables. These are used to assist parsing of descriptions at run-time. */ *************** struct { unsigned int bool; \ *** 161,167 **** typedef struct { const char * name; ! CGEN_ATTR_VALUE_TYPE value; } CGEN_ATTR_ENTRY; /* For each domain (ifld,hw,operand,insn), list of attributes. */ --- 171,177 ---- typedef struct { const char * name; ! unsigned value; } CGEN_ATTR_ENTRY; /* For each domain (ifld,hw,operand,insn), list of attributes. */ *************** typedef CGEN_ATTR_TYPE (CGEN_INSN_NBOOL_ *** 965,970 **** --- 975,981 ---- typedef enum cgen_insn_attr { CGEN_INSN_ALIAS = 0 } CGEN_INSN_ATTR; + #define CGEN_ATTR_CGEN_INSN_ALIAS_VALUE(attrs) ((attrs)->bool & (1 << CGEN_INSN_ALIAS)) #endif /* This struct defines each entry in the instruction table. */ *************** typedef struct *** 1016,1021 **** --- 1027,1034 ---- /* Return value of attribute ATTR in INSN. */ #define CGEN_INSN_ATTR_VALUE(insn, attr) \ CGEN_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr)) + #define CGEN_INSN_BITSET_ATTR_VALUE(insn, attr) \ + CGEN_BITSET_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr)) } CGEN_IBASE; /* Return non-zero if INSN is the "invalid" insn marker. */ *************** typedef struct cgen_cpu_desc *** 1179,1188 **** /* Bitmap of selected machine(s) (a la BFD machine number). */ int machs; ! /* Bitmap of selected isa(s). ! ??? Simultaneous multiple isas might not make sense, but it's not (yet) ! precluded. */ ! int isas; /* Current endian. */ enum cgen_endian endian; --- 1192,1200 ---- /* Bitmap of selected machine(s) (a la BFD machine number). */ int machs; ! /* Bitmap of selected isa(s). */ ! CGEN_BITSET *isas; ! #define CGEN_CPU_ISAS(cd) ((cd)->isas) /* Current endian. */ enum cgen_endian endian; Index: opcodes/cgen-dis.in =================================================================== RCS file: /cvs/src/src/opcodes/cgen-dis.in,v retrieving revision 1.21 diff -c -p -r1.21 cgen-dis.in *** opcodes/cgen-dis.in 1 Jul 2005 11:16:31 -0000 1.21 --- opcodes/cgen-dis.in 19 Sep 2005 19:48:54 -0000 *************** *** 4,10 **** THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't ! Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. --- 4,10 ---- THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't ! Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. *************** default_print_insn (CGEN_CPU_DESC cd, bf *** 347,353 **** typedef struct cpu_desc_list { struct cpu_desc_list *next; ! int isa; int mach; int endian; CGEN_CPU_DESC cd; --- 347,353 ---- typedef struct cpu_desc_list { struct cpu_desc_list *next; ! CGEN_BITSET *isa; int mach; int endian; CGEN_CPU_DESC cd; *************** print_insn_@arch@ (bfd_vma pc, disassemb *** 359,369 **** static cpu_desc_list *cd_list = 0; cpu_desc_list *cl = 0; static CGEN_CPU_DESC cd = 0; ! static int prev_isa; static int prev_mach; static int prev_endian; int length; ! int isa,mach; int endian = (info->endian == BFD_ENDIAN_BIG ? CGEN_ENDIAN_BIG : CGEN_ENDIAN_LITTLE); --- 359,370 ---- static cpu_desc_list *cd_list = 0; cpu_desc_list *cl = 0; static CGEN_CPU_DESC cd = 0; ! static CGEN_BITSET *prev_isa; static int prev_mach; static int prev_endian; int length; ! CGEN_BITSET *isa; ! int mach; int endian = (info->endian == BFD_ENDIAN_BIG ? CGEN_ENDIAN_BIG : CGEN_ENDIAN_LITTLE); *************** print_insn_@arch@ (bfd_vma pc, disassemb *** 386,410 **** #endif #ifdef CGEN_COMPUTE_ISA ! isa = CGEN_COMPUTE_ISA (info); #else isa = info->insn_sets; #endif /* If we've switched cpu's, try to find a handle we've used before */ if (cd ! && (isa != prev_isa || mach != prev_mach || endian != prev_endian)) { cd = 0; for (cl = cd_list; cl; cl = cl->next) { ! if (cl->isa == isa && cl->mach == mach && cl->endian == endian) { cd = cl->cd; break; } } --- 387,420 ---- #endif #ifdef CGEN_COMPUTE_ISA ! { ! static CGEN_BITSET *permanent_isa; ! ! if (!permanent_isa) ! permanent_isa = cgen_bitset_create (MAX_ISAS); ! isa = permanent_isa; ! cgen_bitset_clear (isa); ! cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info)); ! } #else isa = info->insn_sets; #endif /* If we've switched cpu's, try to find a handle we've used before */ if (cd ! && (cgen_bitset_compare (isa, prev_isa) != 0 || mach != prev_mach || endian != prev_endian)) { cd = 0; for (cl = cd_list; cl; cl = cl->next) { ! if (cgen_bitset_compare (cl->isa, isa) == 0 && cl->mach == mach && cl->endian == endian) { cd = cl->cd; + prev_isa = cd->isas; break; } } *************** print_insn_@arch@ (bfd_vma pc, disassemb *** 420,426 **** abort (); mach_name = arch_type->printable_name; ! prev_isa = isa; prev_mach = mach; prev_endian = endian; cd = @arch@_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa, --- 430,436 ---- abort (); mach_name = arch_type->printable_name; ! prev_isa = cgen_bitset_copy (isa); prev_mach = mach; prev_endian = endian; cd = @arch@_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa, *************** print_insn_@arch@ (bfd_vma pc, disassemb *** 433,439 **** /* Save this away for future reference. */ cl = xmalloc (sizeof (struct cpu_desc_list)); cl->cd = cd; ! cl->isa = isa; cl->mach = mach; cl->endian = endian; cl->next = cd_list; --- 443,449 ---- /* Save this away for future reference. */ cl = xmalloc (sizeof (struct cpu_desc_list)); cl->cd = cd; ! cl->isa = prev_isa; cl->mach = mach; cl->endian = endian; cl->next = cd_list; Index: opcodes/cgen-opc.c =================================================================== RCS file: /cvs/src/src/opcodes/cgen-opc.c,v retrieving revision 1.15 diff -c -p -r1.15 cgen-opc.c *** opcodes/cgen-opc.c 1 Jul 2005 11:16:31 -0000 1.15 --- opcodes/cgen-opc.c 19 Sep 2005 19:48:54 -0000 *************** cgen_signed_overflow_ok_p (CGEN_CPU_DESC *** 613,615 **** --- 613,763 ---- { return cd->signed_overflow_ok_p; } + /* Functions for manipulating CGEN_BITSET. */ + + /* Create a bit mask. */ + CGEN_BITSET * + cgen_bitset_create (unsigned bit_count) + { + CGEN_BITSET * mask = xmalloc (sizeof (* mask)); + cgen_bitset_init (mask, bit_count); + return mask; + } + + /* Initialize an existing bit mask. */ + + void + cgen_bitset_init (CGEN_BITSET * mask, unsigned bit_count) + { + if (! mask) + return; + mask->length = (bit_count / 8) + 1; + mask->bits = xmalloc (mask->length); + cgen_bitset_clear (mask); + } + + /* Clear the bits of a bit mask. */ + + void + cgen_bitset_clear (CGEN_BITSET * mask) + { + unsigned i; + + if (! mask) + return; + + for (i = 0; i < mask->length; ++i) + mask->bits[i] = 0; + } + + /* Add a bit to a bit mask. */ + + void + cgen_bitset_add (CGEN_BITSET * mask, unsigned bit_num) + { + int byte_ix, bit_ix; + int bit_mask; + + if (! mask) + return; + byte_ix = bit_num / 8; + bit_ix = bit_num % 8; + bit_mask = 1 << (7 - bit_ix); + mask->bits[byte_ix] |= bit_mask; + } + + /* Set a bit mask. */ + + void + cgen_bitset_set (CGEN_BITSET * mask, unsigned bit_num) + { + if (! mask) + return; + cgen_bitset_clear (mask); + cgen_bitset_add (mask, bit_num); + } + + /* Test for a bit in a bit mask. + Returns 1 if the bit is found */ + + int + cgen_bitset_contains (CGEN_BITSET * mask, unsigned bit_num) + { + int byte_ix, bit_ix; + int bit_mask; + + if (! mask) + return 1; /* No bit restrictions. */ + + byte_ix = bit_num / 8; + bit_ix = 7 - (bit_num % 8); + bit_mask = 1 << bit_ix; + return (mask->bits[byte_ix] & bit_mask) >> bit_ix; + } + + /* Compare two bit masks for equality. + Returns 0 if they are equal. */ + + int + cgen_bitset_compare (CGEN_BITSET * mask1, CGEN_BITSET * mask2) + { + if (mask1 == mask2) + return 0; + if (! mask1 || ! mask2) + return 1; + if (mask1->length != mask2->length) + return 1; + return memcmp (mask1->bits, mask2->bits, mask1->length); + } + + /* Test two bit masks for common bits. + Returns 1 if a common bit is found. */ + + int + cgen_bitset_intersect_p (CGEN_BITSET * mask1, CGEN_BITSET * mask2) + { + unsigned i, limit; + + if (mask1 == mask2) + return 1; + if (! mask1 || ! mask2) + return 0; + limit = mask1->length < mask2->length ? mask1->length : mask2->length; + + for (i = 0; i < limit; ++i) + if ((mask1->bits[i] & mask2->bits[i])) + return 1; + + return 0; + } + + /* Make a copy of a bit mask. */ + + CGEN_BITSET * + cgen_bitset_copy (CGEN_BITSET * mask) + { + CGEN_BITSET* newmask; + + if (! mask) + return NULL; + newmask = cgen_bitset_create ((mask->length * 8) - 1); + memcpy (newmask->bits, mask->bits, mask->length); + return newmask; + } + + /* Combine two bit masks. */ + + void + cgen_bitset_union (CGEN_BITSET * mask1, CGEN_BITSET * mask2, + CGEN_BITSET * result) + { + unsigned i; + + if (! mask1 || ! mask2 || ! result + || mask1->length != mask2->length + || mask1->length != result->length) + return; + + for (i = 0; i < result->length; ++i) + result->bits[i] = mask1->bits[i] | mask2->bits[i]; + } Index: opcodes/disassemble.c =================================================================== RCS file: /cvs/src/src/opcodes/disassemble.c,v retrieving revision 1.56 diff -c -p -r1.56 disassemble.c *** opcodes/disassemble.c 18 Aug 2005 03:49:00 -0000 1.56 --- opcodes/disassemble.c 19 Sep 2005 19:48:54 -0000 *************** disassemble_init_for_target (struct disa *** 440,453 **** #ifdef ARCH_tic4x case bfd_arch_tic4x: info->skip_zeroes = 32; #endif #ifdef ARCH_m32c case bfd_arch_m32c: info->endian = BFD_ENDIAN_BIG; ! if (info->mach == bfd_mach_m16c) ! info->insn_sets = 1 << ISA_M16C; ! else ! info->insn_sets = 1 << ISA_M32C; break; #endif default: --- 440,458 ---- #ifdef ARCH_tic4x case bfd_arch_tic4x: info->skip_zeroes = 32; + break; #endif #ifdef ARCH_m32c case bfd_arch_m32c: info->endian = BFD_ENDIAN_BIG; ! if (! info->insn_sets) ! { ! info->insn_sets = cgen_bitset_create (ISA_MAX); ! if (info->mach == bfd_mach_m16c) ! cgen_bitset_set (info->insn_sets, ISA_M16C); ! else ! cgen_bitset_set (info->insn_sets, ISA_M32C); ! } break; #endif default: Index: opcodes/frv-desc.c =================================================================== RCS file: /cvs/src/src/opcodes/frv-desc.c,v retrieving revision 1.21 diff -c -p -r1.21 frv-desc.c *** opcodes/frv-desc.c 1 Jul 2005 11:16:31 -0000 1.21 --- opcodes/frv-desc.c 19 Sep 2005 19:48:55 -0000 *************** static const CGEN_MACH frv_cgen_mach_tab *** 296,367 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_gr_names_entries[] = { ! { "sp", 1, {0, {0}}, 0, 0 }, ! { "fp", 2, {0, {0}}, 0, 0 }, ! { "gr0", 0, {0, {0}}, 0, 0 }, ! { "gr1", 1, {0, {0}}, 0, 0 }, ! { "gr2", 2, {0, {0}}, 0, 0 }, ! { "gr3", 3, {0, {0}}, 0, 0 }, ! { "gr4", 4, {0, {0}}, 0, 0 }, ! { "gr5", 5, {0, {0}}, 0, 0 }, ! { "gr6", 6, {0, {0}}, 0, 0 }, ! { "gr7", 7, {0, {0}}, 0, 0 }, ! { "gr8", 8, {0, {0}}, 0, 0 }, ! { "gr9", 9, {0, {0}}, 0, 0 }, ! { "gr10", 10, {0, {0}}, 0, 0 }, ! { "gr11", 11, {0, {0}}, 0, 0 }, ! { "gr12", 12, {0, {0}}, 0, 0 }, ! { "gr13", 13, {0, {0}}, 0, 0 }, ! { "gr14", 14, {0, {0}}, 0, 0 }, ! { "gr15", 15, {0, {0}}, 0, 0 }, ! { "gr16", 16, {0, {0}}, 0, 0 }, ! { "gr17", 17, {0, {0}}, 0, 0 }, ! { "gr18", 18, {0, {0}}, 0, 0 }, ! { "gr19", 19, {0, {0}}, 0, 0 }, ! { "gr20", 20, {0, {0}}, 0, 0 }, ! { "gr21", 21, {0, {0}}, 0, 0 }, ! { "gr22", 22, {0, {0}}, 0, 0 }, ! { "gr23", 23, {0, {0}}, 0, 0 }, ! { "gr24", 24, {0, {0}}, 0, 0 }, ! { "gr25", 25, {0, {0}}, 0, 0 }, ! { "gr26", 26, {0, {0}}, 0, 0 }, ! { "gr27", 27, {0, {0}}, 0, 0 }, ! { "gr28", 28, {0, {0}}, 0, 0 }, ! { "gr29", 29, {0, {0}}, 0, 0 }, ! { "gr30", 30, {0, {0}}, 0, 0 }, ! { "gr31", 31, {0, {0}}, 0, 0 }, ! { "gr32", 32, {0, {0}}, 0, 0 }, ! { "gr33", 33, {0, {0}}, 0, 0 }, ! { "gr34", 34, {0, {0}}, 0, 0 }, ! { "gr35", 35, {0, {0}}, 0, 0 }, ! { "gr36", 36, {0, {0}}, 0, 0 }, ! { "gr37", 37, {0, {0}}, 0, 0 }, ! { "gr38", 38, {0, {0}}, 0, 0 }, ! { "gr39", 39, {0, {0}}, 0, 0 }, ! { "gr40", 40, {0, {0}}, 0, 0 }, ! { "gr41", 41, {0, {0}}, 0, 0 }, ! { "gr42", 42, {0, {0}}, 0, 0 }, ! { "gr43", 43, {0, {0}}, 0, 0 }, ! { "gr44", 44, {0, {0}}, 0, 0 }, ! { "gr45", 45, {0, {0}}, 0, 0 }, ! { "gr46", 46, {0, {0}}, 0, 0 }, ! { "gr47", 47, {0, {0}}, 0, 0 }, ! { "gr48", 48, {0, {0}}, 0, 0 }, ! { "gr49", 49, {0, {0}}, 0, 0 }, ! { "gr50", 50, {0, {0}}, 0, 0 }, ! { "gr51", 51, {0, {0}}, 0, 0 }, ! { "gr52", 52, {0, {0}}, 0, 0 }, ! { "gr53", 53, {0, {0}}, 0, 0 }, ! { "gr54", 54, {0, {0}}, 0, 0 }, ! { "gr55", 55, {0, {0}}, 0, 0 }, ! { "gr56", 56, {0, {0}}, 0, 0 }, ! { "gr57", 57, {0, {0}}, 0, 0 }, ! { "gr58", 58, {0, {0}}, 0, 0 }, ! { "gr59", 59, {0, {0}}, 0, 0 }, ! { "gr60", 60, {0, {0}}, 0, 0 }, ! { "gr61", 61, {0, {0}}, 0, 0 }, ! { "gr62", 62, {0, {0}}, 0, 0 }, ! { "gr63", 63, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_gr_names = --- 296,367 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_gr_names_entries[] = { ! { "sp", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "fp", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr3", 3, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr4", 4, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr5", 5, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr6", 6, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr7", 7, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr8", 8, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr9", 9, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr10", 10, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr11", 11, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr12", 12, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr13", 13, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr14", 14, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr15", 15, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr16", 16, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr17", 17, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr18", 18, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr19", 19, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr20", 20, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr21", 21, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr22", 22, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr23", 23, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr24", 24, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr25", 25, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr26", 26, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr27", 27, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr28", 28, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr29", 29, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr30", 30, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr31", 31, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr32", 32, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr33", 33, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr34", 34, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr35", 35, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr36", 36, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr37", 37, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr38", 38, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr39", 39, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr40", 40, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr41", 41, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr42", 42, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr43", 43, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr44", 44, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr45", 45, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr46", 46, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr47", 47, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr48", 48, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr49", 49, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr50", 50, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr51", 51, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr52", 52, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr53", 53, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr54", 54, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr55", 55, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr56", 56, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr57", 57, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr58", 58, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr59", 59, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr60", 60, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr61", 61, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr62", 62, {0, {{{0, 0}}}}, 0, 0 }, ! { "gr63", 63, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_gr_names = *************** CGEN_KEYWORD frv_cgen_opval_gr_names = *** 373,442 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_fr_names_entries[] = { ! { "fr0", 0, {0, {0}}, 0, 0 }, ! { "fr1", 1, {0, {0}}, 0, 0 }, ! { "fr2", 2, {0, {0}}, 0, 0 }, ! { "fr3", 3, {0, {0}}, 0, 0 }, ! { "fr4", 4, {0, {0}}, 0, 0 }, ! { "fr5", 5, {0, {0}}, 0, 0 }, ! { "fr6", 6, {0, {0}}, 0, 0 }, ! { "fr7", 7, {0, {0}}, 0, 0 }, ! { "fr8", 8, {0, {0}}, 0, 0 }, ! { "fr9", 9, {0, {0}}, 0, 0 }, ! { "fr10", 10, {0, {0}}, 0, 0 }, ! { "fr11", 11, {0, {0}}, 0, 0 }, ! { "fr12", 12, {0, {0}}, 0, 0 }, ! { "fr13", 13, {0, {0}}, 0, 0 }, ! { "fr14", 14, {0, {0}}, 0, 0 }, ! { "fr15", 15, {0, {0}}, 0, 0 }, ! { "fr16", 16, {0, {0}}, 0, 0 }, ! { "fr17", 17, {0, {0}}, 0, 0 }, ! { "fr18", 18, {0, {0}}, 0, 0 }, ! { "fr19", 19, {0, {0}}, 0, 0 }, ! { "fr20", 20, {0, {0}}, 0, 0 }, ! { "fr21", 21, {0, {0}}, 0, 0 }, ! { "fr22", 22, {0, {0}}, 0, 0 }, ! { "fr23", 23, {0, {0}}, 0, 0 }, ! { "fr24", 24, {0, {0}}, 0, 0 }, ! { "fr25", 25, {0, {0}}, 0, 0 }, ! { "fr26", 26, {0, {0}}, 0, 0 }, ! { "fr27", 27, {0, {0}}, 0, 0 }, ! { "fr28", 28, {0, {0}}, 0, 0 }, ! { "fr29", 29, {0, {0}}, 0, 0 }, ! { "fr30", 30, {0, {0}}, 0, 0 }, ! { "fr31", 31, {0, {0}}, 0, 0 }, ! { "fr32", 32, {0, {0}}, 0, 0 }, ! { "fr33", 33, {0, {0}}, 0, 0 }, ! { "fr34", 34, {0, {0}}, 0, 0 }, ! { "fr35", 35, {0, {0}}, 0, 0 }, ! { "fr36", 36, {0, {0}}, 0, 0 }, ! { "fr37", 37, {0, {0}}, 0, 0 }, ! { "fr38", 38, {0, {0}}, 0, 0 }, ! { "fr39", 39, {0, {0}}, 0, 0 }, ! { "fr40", 40, {0, {0}}, 0, 0 }, ! { "fr41", 41, {0, {0}}, 0, 0 }, ! { "fr42", 42, {0, {0}}, 0, 0 }, ! { "fr43", 43, {0, {0}}, 0, 0 }, ! { "fr44", 44, {0, {0}}, 0, 0 }, ! { "fr45", 45, {0, {0}}, 0, 0 }, ! { "fr46", 46, {0, {0}}, 0, 0 }, ! { "fr47", 47, {0, {0}}, 0, 0 }, ! { "fr48", 48, {0, {0}}, 0, 0 }, ! { "fr49", 49, {0, {0}}, 0, 0 }, ! { "fr50", 50, {0, {0}}, 0, 0 }, ! { "fr51", 51, {0, {0}}, 0, 0 }, ! { "fr52", 52, {0, {0}}, 0, 0 }, ! { "fr53", 53, {0, {0}}, 0, 0 }, ! { "fr54", 54, {0, {0}}, 0, 0 }, ! { "fr55", 55, {0, {0}}, 0, 0 }, ! { "fr56", 56, {0, {0}}, 0, 0 }, ! { "fr57", 57, {0, {0}}, 0, 0 }, ! { "fr58", 58, {0, {0}}, 0, 0 }, ! { "fr59", 59, {0, {0}}, 0, 0 }, ! { "fr60", 60, {0, {0}}, 0, 0 }, ! { "fr61", 61, {0, {0}}, 0, 0 }, ! { "fr62", 62, {0, {0}}, 0, 0 }, ! { "fr63", 63, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_fr_names = --- 373,442 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_fr_names_entries[] = { ! { "fr0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr3", 3, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr4", 4, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr5", 5, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr6", 6, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr7", 7, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr8", 8, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr9", 9, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr10", 10, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr11", 11, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr12", 12, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr13", 13, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr14", 14, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr15", 15, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr16", 16, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr17", 17, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr18", 18, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr19", 19, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr20", 20, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr21", 21, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr22", 22, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr23", 23, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr24", 24, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr25", 25, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr26", 26, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr27", 27, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr28", 28, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr29", 29, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr30", 30, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr31", 31, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr32", 32, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr33", 33, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr34", 34, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr35", 35, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr36", 36, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr37", 37, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr38", 38, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr39", 39, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr40", 40, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr41", 41, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr42", 42, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr43", 43, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr44", 44, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr45", 45, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr46", 46, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr47", 47, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr48", 48, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr49", 49, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr50", 50, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr51", 51, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr52", 52, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr53", 53, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr54", 54, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr55", 55, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr56", 56, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr57", 57, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr58", 58, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr59", 59, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr60", 60, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr61", 61, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr62", 62, {0, {{{0, 0}}}}, 0, 0 }, ! { "fr63", 63, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_fr_names = *************** CGEN_KEYWORD frv_cgen_opval_fr_names = *** 448,517 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_cpr_names_entries[] = { ! { "cpr0", 0, {0, {0}}, 0, 0 }, ! { "cpr1", 1, {0, {0}}, 0, 0 }, ! { "cpr2", 2, {0, {0}}, 0, 0 }, ! { "cpr3", 3, {0, {0}}, 0, 0 }, ! { "cpr4", 4, {0, {0}}, 0, 0 }, ! { "cpr5", 5, {0, {0}}, 0, 0 }, ! { "cpr6", 6, {0, {0}}, 0, 0 }, ! { "cpr7", 7, {0, {0}}, 0, 0 }, ! { "cpr8", 8, {0, {0}}, 0, 0 }, ! { "cpr9", 9, {0, {0}}, 0, 0 }, ! { "cpr10", 10, {0, {0}}, 0, 0 }, ! { "cpr11", 11, {0, {0}}, 0, 0 }, ! { "cpr12", 12, {0, {0}}, 0, 0 }, ! { "cpr13", 13, {0, {0}}, 0, 0 }, ! { "cpr14", 14, {0, {0}}, 0, 0 }, ! { "cpr15", 15, {0, {0}}, 0, 0 }, ! { "cpr16", 16, {0, {0}}, 0, 0 }, ! { "cpr17", 17, {0, {0}}, 0, 0 }, ! { "cpr18", 18, {0, {0}}, 0, 0 }, ! { "cpr19", 19, {0, {0}}, 0, 0 }, ! { "cpr20", 20, {0, {0}}, 0, 0 }, ! { "cpr21", 21, {0, {0}}, 0, 0 }, ! { "cpr22", 22, {0, {0}}, 0, 0 }, ! { "cpr23", 23, {0, {0}}, 0, 0 }, ! { "cpr24", 24, {0, {0}}, 0, 0 }, ! { "cpr25", 25, {0, {0}}, 0, 0 }, ! { "cpr26", 26, {0, {0}}, 0, 0 }, ! { "cpr27", 27, {0, {0}}, 0, 0 }, ! { "cpr28", 28, {0, {0}}, 0, 0 }, ! { "cpr29", 29, {0, {0}}, 0, 0 }, ! { "cpr30", 30, {0, {0}}, 0, 0 }, ! { "cpr31", 31, {0, {0}}, 0, 0 }, ! { "cpr32", 32, {0, {0}}, 0, 0 }, ! { "cpr33", 33, {0, {0}}, 0, 0 }, ! { "cpr34", 34, {0, {0}}, 0, 0 }, ! { "cpr35", 35, {0, {0}}, 0, 0 }, ! { "cpr36", 36, {0, {0}}, 0, 0 }, ! { "cpr37", 37, {0, {0}}, 0, 0 }, ! { "cpr38", 38, {0, {0}}, 0, 0 }, ! { "cpr39", 39, {0, {0}}, 0, 0 }, ! { "cpr40", 40, {0, {0}}, 0, 0 }, ! { "cpr41", 41, {0, {0}}, 0, 0 }, ! { "cpr42", 42, {0, {0}}, 0, 0 }, ! { "cpr43", 43, {0, {0}}, 0, 0 }, ! { "cpr44", 44, {0, {0}}, 0, 0 }, ! { "cpr45", 45, {0, {0}}, 0, 0 }, ! { "cpr46", 46, {0, {0}}, 0, 0 }, ! { "cpr47", 47, {0, {0}}, 0, 0 }, ! { "cpr48", 48, {0, {0}}, 0, 0 }, ! { "cpr49", 49, {0, {0}}, 0, 0 }, ! { "cpr50", 50, {0, {0}}, 0, 0 }, ! { "cpr51", 51, {0, {0}}, 0, 0 }, ! { "cpr52", 52, {0, {0}}, 0, 0 }, ! { "cpr53", 53, {0, {0}}, 0, 0 }, ! { "cpr54", 54, {0, {0}}, 0, 0 }, ! { "cpr55", 55, {0, {0}}, 0, 0 }, ! { "cpr56", 56, {0, {0}}, 0, 0 }, ! { "cpr57", 57, {0, {0}}, 0, 0 }, ! { "cpr58", 58, {0, {0}}, 0, 0 }, ! { "cpr59", 59, {0, {0}}, 0, 0 }, ! { "cpr60", 60, {0, {0}}, 0, 0 }, ! { "cpr61", 61, {0, {0}}, 0, 0 }, ! { "cpr62", 62, {0, {0}}, 0, 0 }, ! { "cpr63", 63, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_cpr_names = --- 448,517 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_cpr_names_entries[] = { ! { "cpr0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr3", 3, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr4", 4, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr5", 5, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr6", 6, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr7", 7, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr8", 8, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr9", 9, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr10", 10, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr11", 11, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr12", 12, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr13", 13, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr14", 14, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr15", 15, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr16", 16, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr17", 17, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr18", 18, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr19", 19, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr20", 20, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr21", 21, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr22", 22, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr23", 23, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr24", 24, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr25", 25, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr26", 26, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr27", 27, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr28", 28, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr29", 29, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr30", 30, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr31", 31, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr32", 32, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr33", 33, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr34", 34, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr35", 35, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr36", 36, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr37", 37, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr38", 38, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr39", 39, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr40", 40, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr41", 41, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr42", 42, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr43", 43, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr44", 44, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr45", 45, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr46", 46, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr47", 47, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr48", 48, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr49", 49, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr50", 50, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr51", 51, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr52", 52, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr53", 53, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr54", 54, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr55", 55, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr56", 56, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr57", 57, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr58", 58, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr59", 59, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr60", 60, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr61", 61, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr62", 62, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpr63", 63, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_cpr_names = *************** CGEN_KEYWORD frv_cgen_opval_cpr_names = *** 523,1550 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_spr_names_entries[] = { ! { "psr", 0, {0, {0}}, 0, 0 }, ! { "pcsr", 1, {0, {0}}, 0, 0 }, ! { "bpcsr", 2, {0, {0}}, 0, 0 }, ! { "tbr", 3, {0, {0}}, 0, 0 }, ! { "bpsr", 4, {0, {0}}, 0, 0 }, ! { "hsr0", 16, {0, {0}}, 0, 0 }, ! { "hsr1", 17, {0, {0}}, 0, 0 }, ! { "hsr2", 18, {0, {0}}, 0, 0 }, ! { "hsr3", 19, {0, {0}}, 0, 0 }, ! { "hsr4", 20, {0, {0}}, 0, 0 }, ! { "hsr5", 21, {0, {0}}, 0, 0 }, ! { "hsr6", 22, {0, {0}}, 0, 0 }, ! { "hsr7", 23, {0, {0}}, 0, 0 }, ! { "hsr8", 24, {0, {0}}, 0, 0 }, ! { "hsr9", 25, {0, {0}}, 0, 0 }, ! { "hsr10", 26, {0, {0}}, 0, 0 }, ! { "hsr11", 27, {0, {0}}, 0, 0 }, ! { "hsr12", 28, {0, {0}}, 0, 0 }, ! { "hsr13", 29, {0, {0}}, 0, 0 }, ! { "hsr14", 30, {0, {0}}, 0, 0 }, ! { "hsr15", 31, {0, {0}}, 0, 0 }, ! { "hsr16", 32, {0, {0}}, 0, 0 }, ! { "hsr17", 33, {0, {0}}, 0, 0 }, ! { "hsr18", 34, {0, {0}}, 0, 0 }, ! { "hsr19", 35, {0, {0}}, 0, 0 }, ! { "hsr20", 36, {0, {0}}, 0, 0 }, ! { "hsr21", 37, {0, {0}}, 0, 0 }, ! { "hsr22", 38, {0, {0}}, 0, 0 }, ! { "hsr23", 39, {0, {0}}, 0, 0 }, ! { "hsr24", 40, {0, {0}}, 0, 0 }, ! { "hsr25", 41, {0, {0}}, 0, 0 }, ! { "hsr26", 42, {0, {0}}, 0, 0 }, ! { "hsr27", 43, {0, {0}}, 0, 0 }, ! { "hsr28", 44, {0, {0}}, 0, 0 }, ! { "hsr29", 45, {0, {0}}, 0, 0 }, ! { "hsr30", 46, {0, {0}}, 0, 0 }, ! { "hsr31", 47, {0, {0}}, 0, 0 }, ! { "hsr32", 48, {0, {0}}, 0, 0 }, ! { "hsr33", 49, {0, {0}}, 0, 0 }, ! { "hsr34", 50, {0, {0}}, 0, 0 }, ! { "hsr35", 51, {0, {0}}, 0, 0 }, ! { "hsr36", 52, {0, {0}}, 0, 0 }, ! { "hsr37", 53, {0, {0}}, 0, 0 }, ! { "hsr38", 54, {0, {0}}, 0, 0 }, ! { "hsr39", 55, {0, {0}}, 0, 0 }, ! { "hsr40", 56, {0, {0}}, 0, 0 }, ! { "hsr41", 57, {0, {0}}, 0, 0 }, ! { "hsr42", 58, {0, {0}}, 0, 0 }, ! { "hsr43", 59, {0, {0}}, 0, 0 }, ! { "hsr44", 60, {0, {0}}, 0, 0 }, ! { "hsr45", 61, {0, {0}}, 0, 0 }, ! { "hsr46", 62, {0, {0}}, 0, 0 }, ! { "hsr47", 63, {0, {0}}, 0, 0 }, ! { "hsr48", 64, {0, {0}}, 0, 0 }, ! { "hsr49", 65, {0, {0}}, 0, 0 }, ! { "hsr50", 66, {0, {0}}, 0, 0 }, ! { "hsr51", 67, {0, {0}}, 0, 0 }, ! { "hsr52", 68, {0, {0}}, 0, 0 }, ! { "hsr53", 69, {0, {0}}, 0, 0 }, ! { "hsr54", 70, {0, {0}}, 0, 0 }, ! { "hsr55", 71, {0, {0}}, 0, 0 }, ! { "hsr56", 72, {0, {0}}, 0, 0 }, ! { "hsr57", 73, {0, {0}}, 0, 0 }, ! { "hsr58", 74, {0, {0}}, 0, 0 }, ! { "hsr59", 75, {0, {0}}, 0, 0 }, ! { "hsr60", 76, {0, {0}}, 0, 0 }, ! { "hsr61", 77, {0, {0}}, 0, 0 }, ! { "hsr62", 78, {0, {0}}, 0, 0 }, ! { "hsr63", 79, {0, {0}}, 0, 0 }, ! { "ccr", 256, {0, {0}}, 0, 0 }, ! { "cccr", 263, {0, {0}}, 0, 0 }, ! { "lr", 272, {0, {0}}, 0, 0 }, ! { "lcr", 273, {0, {0}}, 0, 0 }, ! { "iacc0h", 280, {0, {0}}, 0, 0 }, ! { "iacc0l", 281, {0, {0}}, 0, 0 }, ! { "isr", 288, {0, {0}}, 0, 0 }, ! { "neear0", 352, {0, {0}}, 0, 0 }, ! { "neear1", 353, {0, {0}}, 0, 0 }, ! { "neear2", 354, {0, {0}}, 0, 0 }, ! { "neear3", 355, {0, {0}}, 0, 0 }, ! { "neear4", 356, {0, {0}}, 0, 0 }, ! { "neear5", 357, {0, {0}}, 0, 0 }, ! { "neear6", 358, {0, {0}}, 0, 0 }, ! { "neear7", 359, {0, {0}}, 0, 0 }, ! { "neear8", 360, {0, {0}}, 0, 0 }, ! { "neear9", 361, {0, {0}}, 0, 0 }, ! { "neear10", 362, {0, {0}}, 0, 0 }, ! { "neear11", 363, {0, {0}}, 0, 0 }, ! { "neear12", 364, {0, {0}}, 0, 0 }, ! { "neear13", 365, {0, {0}}, 0, 0 }, ! { "neear14", 366, {0, {0}}, 0, 0 }, ! { "neear15", 367, {0, {0}}, 0, 0 }, ! { "neear16", 368, {0, {0}}, 0, 0 }, ! { "neear17", 369, {0, {0}}, 0, 0 }, ! { "neear18", 370, {0, {0}}, 0, 0 }, ! { "neear19", 371, {0, {0}}, 0, 0 }, ! { "neear20", 372, {0, {0}}, 0, 0 }, ! { "neear21", 373, {0, {0}}, 0, 0 }, ! { "neear22", 374, {0, {0}}, 0, 0 }, ! { "neear23", 375, {0, {0}}, 0, 0 }, ! { "neear24", 376, {0, {0}}, 0, 0 }, ! { "neear25", 377, {0, {0}}, 0, 0 }, ! { "neear26", 378, {0, {0}}, 0, 0 }, ! { "neear27", 379, {0, {0}}, 0, 0 }, ! { "neear28", 380, {0, {0}}, 0, 0 }, ! { "neear29", 381, {0, {0}}, 0, 0 }, ! { "neear30", 382, {0, {0}}, 0, 0 }, ! { "neear31", 383, {0, {0}}, 0, 0 }, ! { "nesr0", 384, {0, {0}}, 0, 0 }, ! { "nesr1", 385, {0, {0}}, 0, 0 }, ! { "nesr2", 386, {0, {0}}, 0, 0 }, ! { "nesr3", 387, {0, {0}}, 0, 0 }, ! { "nesr4", 388, {0, {0}}, 0, 0 }, ! { "nesr5", 389, {0, {0}}, 0, 0 }, ! { "nesr6", 390, {0, {0}}, 0, 0 }, ! { "nesr7", 391, {0, {0}}, 0, 0 }, ! { "nesr8", 392, {0, {0}}, 0, 0 }, ! { "nesr9", 393, {0, {0}}, 0, 0 }, ! { "nesr10", 394, {0, {0}}, 0, 0 }, ! { "nesr11", 395, {0, {0}}, 0, 0 }, ! { "nesr12", 396, {0, {0}}, 0, 0 }, ! { "nesr13", 397, {0, {0}}, 0, 0 }, ! { "nesr14", 398, {0, {0}}, 0, 0 }, ! { "nesr15", 399, {0, {0}}, 0, 0 }, ! { "nesr16", 400, {0, {0}}, 0, 0 }, ! { "nesr17", 401, {0, {0}}, 0, 0 }, ! { "nesr18", 402, {0, {0}}, 0, 0 }, ! { "nesr19", 403, {0, {0}}, 0, 0 }, ! { "nesr20", 404, {0, {0}}, 0, 0 }, ! { "nesr21", 405, {0, {0}}, 0, 0 }, ! { "nesr22", 406, {0, {0}}, 0, 0 }, ! { "nesr23", 407, {0, {0}}, 0, 0 }, ! { "nesr24", 408, {0, {0}}, 0, 0 }, ! { "nesr25", 409, {0, {0}}, 0, 0 }, ! { "nesr26", 410, {0, {0}}, 0, 0 }, ! { "nesr27", 411, {0, {0}}, 0, 0 }, ! { "nesr28", 412, {0, {0}}, 0, 0 }, ! { "nesr29", 413, {0, {0}}, 0, 0 }, ! { "nesr30", 414, {0, {0}}, 0, 0 }, ! { "nesr31", 415, {0, {0}}, 0, 0 }, ! { "necr", 416, {0, {0}}, 0, 0 }, ! { "gner0", 432, {0, {0}}, 0, 0 }, ! { "gner1", 433, {0, {0}}, 0, 0 }, ! { "fner0", 434, {0, {0}}, 0, 0 }, ! { "fner1", 435, {0, {0}}, 0, 0 }, ! { "epcr0", 512, {0, {0}}, 0, 0 }, ! { "epcr1", 513, {0, {0}}, 0, 0 }, ! { "epcr2", 514, {0, {0}}, 0, 0 }, ! { "epcr3", 515, {0, {0}}, 0, 0 }, ! { "epcr4", 516, {0, {0}}, 0, 0 }, ! { "epcr5", 517, {0, {0}}, 0, 0 }, ! { "epcr6", 518, {0, {0}}, 0, 0 }, ! { "epcr7", 519, {0, {0}}, 0, 0 }, ! { "epcr8", 520, {0, {0}}, 0, 0 }, ! { "epcr9", 521, {0, {0}}, 0, 0 }, ! { "epcr10", 522, {0, {0}}, 0, 0 }, ! { "epcr11", 523, {0, {0}}, 0, 0 }, ! { "epcr12", 524, {0, {0}}, 0, 0 }, ! { "epcr13", 525, {0, {0}}, 0, 0 }, ! { "epcr14", 526, {0, {0}}, 0, 0 }, ! { "epcr15", 527, {0, {0}}, 0, 0 }, ! { "epcr16", 528, {0, {0}}, 0, 0 }, ! { "epcr17", 529, {0, {0}}, 0, 0 }, ! { "epcr18", 530, {0, {0}}, 0, 0 }, ! { "epcr19", 531, {0, {0}}, 0, 0 }, ! { "epcr20", 532, {0, {0}}, 0, 0 }, ! { "epcr21", 533, {0, {0}}, 0, 0 }, ! { "epcr22", 534, {0, {0}}, 0, 0 }, ! { "epcr23", 535, {0, {0}}, 0, 0 }, ! { "epcr24", 536, {0, {0}}, 0, 0 }, ! { "epcr25", 537, {0, {0}}, 0, 0 }, ! { "epcr26", 538, {0, {0}}, 0, 0 }, ! { "epcr27", 539, {0, {0}}, 0, 0 }, ! { "epcr28", 540, {0, {0}}, 0, 0 }, ! { "epcr29", 541, {0, {0}}, 0, 0 }, ! { "epcr30", 542, {0, {0}}, 0, 0 }, ! { "epcr31", 543, {0, {0}}, 0, 0 }, ! { "epcr32", 544, {0, {0}}, 0, 0 }, ! { "epcr33", 545, {0, {0}}, 0, 0 }, ! { "epcr34", 546, {0, {0}}, 0, 0 }, ! { "epcr35", 547, {0, {0}}, 0, 0 }, ! { "epcr36", 548, {0, {0}}, 0, 0 }, ! { "epcr37", 549, {0, {0}}, 0, 0 }, ! { "epcr38", 550, {0, {0}}, 0, 0 }, ! { "epcr39", 551, {0, {0}}, 0, 0 }, ! { "epcr40", 552, {0, {0}}, 0, 0 }, ! { "epcr41", 553, {0, {0}}, 0, 0 }, ! { "epcr42", 554, {0, {0}}, 0, 0 }, ! { "epcr43", 555, {0, {0}}, 0, 0 }, ! { "epcr44", 556, {0, {0}}, 0, 0 }, ! { "epcr45", 557, {0, {0}}, 0, 0 }, ! { "epcr46", 558, {0, {0}}, 0, 0 }, ! { "epcr47", 559, {0, {0}}, 0, 0 }, ! { "epcr48", 560, {0, {0}}, 0, 0 }, ! { "epcr49", 561, {0, {0}}, 0, 0 }, ! { "epcr50", 562, {0, {0}}, 0, 0 }, ! { "epcr51", 563, {0, {0}}, 0, 0 }, ! { "epcr52", 564, {0, {0}}, 0, 0 }, ! { "epcr53", 565, {0, {0}}, 0, 0 }, ! { "epcr54", 566, {0, {0}}, 0, 0 }, ! { "epcr55", 567, {0, {0}}, 0, 0 }, ! { "epcr56", 568, {0, {0}}, 0, 0 }, ! { "epcr57", 569, {0, {0}}, 0, 0 }, ! { "epcr58", 570, {0, {0}}, 0, 0 }, ! { "epcr59", 571, {0, {0}}, 0, 0 }, ! { "epcr60", 572, {0, {0}}, 0, 0 }, ! { "epcr61", 573, {0, {0}}, 0, 0 }, ! { "epcr62", 574, {0, {0}}, 0, 0 }, ! { "epcr63", 575, {0, {0}}, 0, 0 }, ! { "esr0", 576, {0, {0}}, 0, 0 }, ! { "esr1", 577, {0, {0}}, 0, 0 }, ! { "esr2", 578, {0, {0}}, 0, 0 }, ! { "esr3", 579, {0, {0}}, 0, 0 }, ! { "esr4", 580, {0, {0}}, 0, 0 }, ! { "esr5", 581, {0, {0}}, 0, 0 }, ! { "esr6", 582, {0, {0}}, 0, 0 }, ! { "esr7", 583, {0, {0}}, 0, 0 }, ! { "esr8", 584, {0, {0}}, 0, 0 }, ! { "esr9", 585, {0, {0}}, 0, 0 }, ! { "esr10", 586, {0, {0}}, 0, 0 }, ! { "esr11", 587, {0, {0}}, 0, 0 }, ! { "esr12", 588, {0, {0}}, 0, 0 }, ! { "esr13", 589, {0, {0}}, 0, 0 }, ! { "esr14", 590, {0, {0}}, 0, 0 }, ! { "esr15", 591, {0, {0}}, 0, 0 }, ! { "esr16", 592, {0, {0}}, 0, 0 }, ! { "esr17", 593, {0, {0}}, 0, 0 }, ! { "esr18", 594, {0, {0}}, 0, 0 }, ! { "esr19", 595, {0, {0}}, 0, 0 }, ! { "esr20", 596, {0, {0}}, 0, 0 }, ! { "esr21", 597, {0, {0}}, 0, 0 }, ! { "esr22", 598, {0, {0}}, 0, 0 }, ! { "esr23", 599, {0, {0}}, 0, 0 }, ! { "esr24", 600, {0, {0}}, 0, 0 }, ! { "esr25", 601, {0, {0}}, 0, 0 }, ! { "esr26", 602, {0, {0}}, 0, 0 }, ! { "esr27", 603, {0, {0}}, 0, 0 }, ! { "esr28", 604, {0, {0}}, 0, 0 }, ! { "esr29", 605, {0, {0}}, 0, 0 }, ! { "esr30", 606, {0, {0}}, 0, 0 }, ! { "esr31", 607, {0, {0}}, 0, 0 }, ! { "esr32", 608, {0, {0}}, 0, 0 }, ! { "esr33", 609, {0, {0}}, 0, 0 }, ! { "esr34", 610, {0, {0}}, 0, 0 }, ! { "esr35", 611, {0, {0}}, 0, 0 }, ! { "esr36", 612, {0, {0}}, 0, 0 }, ! { "esr37", 613, {0, {0}}, 0, 0 }, ! { "esr38", 614, {0, {0}}, 0, 0 }, ! { "esr39", 615, {0, {0}}, 0, 0 }, ! { "esr40", 616, {0, {0}}, 0, 0 }, ! { "esr41", 617, {0, {0}}, 0, 0 }, ! { "esr42", 618, {0, {0}}, 0, 0 }, ! { "esr43", 619, {0, {0}}, 0, 0 }, ! { "esr44", 620, {0, {0}}, 0, 0 }, ! { "esr45", 621, {0, {0}}, 0, 0 }, ! { "esr46", 622, {0, {0}}, 0, 0 }, ! { "esr47", 623, {0, {0}}, 0, 0 }, ! { "esr48", 624, {0, {0}}, 0, 0 }, ! { "esr49", 625, {0, {0}}, 0, 0 }, ! { "esr50", 626, {0, {0}}, 0, 0 }, ! { "esr51", 627, {0, {0}}, 0, 0 }, ! { "esr52", 628, {0, {0}}, 0, 0 }, ! { "esr53", 629, {0, {0}}, 0, 0 }, ! { "esr54", 630, {0, {0}}, 0, 0 }, ! { "esr55", 631, {0, {0}}, 0, 0 }, ! { "esr56", 632, {0, {0}}, 0, 0 }, ! { "esr57", 633, {0, {0}}, 0, 0 }, ! { "esr58", 634, {0, {0}}, 0, 0 }, ! { "esr59", 635, {0, {0}}, 0, 0 }, ! { "esr60", 636, {0, {0}}, 0, 0 }, ! { "esr61", 637, {0, {0}}, 0, 0 }, ! { "esr62", 638, {0, {0}}, 0, 0 }, ! { "esr63", 639, {0, {0}}, 0, 0 }, ! { "eir0", 640, {0, {0}}, 0, 0 }, ! { "eir1", 641, {0, {0}}, 0, 0 }, ! { "eir2", 642, {0, {0}}, 0, 0 }, ! { "eir3", 643, {0, {0}}, 0, 0 }, ! { "eir4", 644, {0, {0}}, 0, 0 }, ! { "eir5", 645, {0, {0}}, 0, 0 }, ! { "eir6", 646, {0, {0}}, 0, 0 }, ! { "eir7", 647, {0, {0}}, 0, 0 }, ! { "eir8", 648, {0, {0}}, 0, 0 }, ! { "eir9", 649, {0, {0}}, 0, 0 }, ! { "eir10", 650, {0, {0}}, 0, 0 }, ! { "eir11", 651, {0, {0}}, 0, 0 }, ! { "eir12", 652, {0, {0}}, 0, 0 }, ! { "eir13", 653, {0, {0}}, 0, 0 }, ! { "eir14", 654, {0, {0}}, 0, 0 }, ! { "eir15", 655, {0, {0}}, 0, 0 }, ! { "eir16", 656, {0, {0}}, 0, 0 }, ! { "eir17", 657, {0, {0}}, 0, 0 }, ! { "eir18", 658, {0, {0}}, 0, 0 }, ! { "eir19", 659, {0, {0}}, 0, 0 }, ! { "eir20", 660, {0, {0}}, 0, 0 }, ! { "eir21", 661, {0, {0}}, 0, 0 }, ! { "eir22", 662, {0, {0}}, 0, 0 }, ! { "eir23", 663, {0, {0}}, 0, 0 }, ! { "eir24", 664, {0, {0}}, 0, 0 }, ! { "eir25", 665, {0, {0}}, 0, 0 }, ! { "eir26", 666, {0, {0}}, 0, 0 }, ! { "eir27", 667, {0, {0}}, 0, 0 }, ! { "eir28", 668, {0, {0}}, 0, 0 }, ! { "eir29", 669, {0, {0}}, 0, 0 }, ! { "eir30", 670, {0, {0}}, 0, 0 }, ! { "eir31", 671, {0, {0}}, 0, 0 }, ! { "esfr0", 672, {0, {0}}, 0, 0 }, ! { "esfr1", 673, {0, {0}}, 0, 0 }, ! { "sr0", 768, {0, {0}}, 0, 0 }, ! { "sr1", 769, {0, {0}}, 0, 0 }, ! { "sr2", 770, {0, {0}}, 0, 0 }, ! { "sr3", 771, {0, {0}}, 0, 0 }, ! { "scr0", 832, {0, {0}}, 0, 0 }, ! { "scr1", 833, {0, {0}}, 0, 0 }, ! { "scr2", 834, {0, {0}}, 0, 0 }, ! { "scr3", 835, {0, {0}}, 0, 0 }, ! { "fsr0", 1024, {0, {0}}, 0, 0 }, ! { "fsr1", 1025, {0, {0}}, 0, 0 }, ! { "fsr2", 1026, {0, {0}}, 0, 0 }, ! { "fsr3", 1027, {0, {0}}, 0, 0 }, ! { "fsr4", 1028, {0, {0}}, 0, 0 }, ! { "fsr5", 1029, {0, {0}}, 0, 0 }, ! { "fsr6", 1030, {0, {0}}, 0, 0 }, ! { "fsr7", 1031, {0, {0}}, 0, 0 }, ! { "fsr8", 1032, {0, {0}}, 0, 0 }, ! { "fsr9", 1033, {0, {0}}, 0, 0 }, ! { "fsr10", 1034, {0, {0}}, 0, 0 }, ! { "fsr11", 1035, {0, {0}}, 0, 0 }, ! { "fsr12", 1036, {0, {0}}, 0, 0 }, ! { "fsr13", 1037, {0, {0}}, 0, 0 }, ! { "fsr14", 1038, {0, {0}}, 0, 0 }, ! { "fsr15", 1039, {0, {0}}, 0, 0 }, ! { "fsr16", 1040, {0, {0}}, 0, 0 }, ! { "fsr17", 1041, {0, {0}}, 0, 0 }, ! { "fsr18", 1042, {0, {0}}, 0, 0 }, ! { "fsr19", 1043, {0, {0}}, 0, 0 }, ! { "fsr20", 1044, {0, {0}}, 0, 0 }, ! { "fsr21", 1045, {0, {0}}, 0, 0 }, ! { "fsr22", 1046, {0, {0}}, 0, 0 }, ! { "fsr23", 1047, {0, {0}}, 0, 0 }, ! { "fsr24", 1048, {0, {0}}, 0, 0 }, ! { "fsr25", 1049, {0, {0}}, 0, 0 }, ! { "fsr26", 1050, {0, {0}}, 0, 0 }, ! { "fsr27", 1051, {0, {0}}, 0, 0 }, ! { "fsr28", 1052, {0, {0}}, 0, 0 }, ! { "fsr29", 1053, {0, {0}}, 0, 0 }, ! { "fsr30", 1054, {0, {0}}, 0, 0 }, ! { "fsr31", 1055, {0, {0}}, 0, 0 }, ! { "fsr32", 1056, {0, {0}}, 0, 0 }, ! { "fsr33", 1057, {0, {0}}, 0, 0 }, ! { "fsr34", 1058, {0, {0}}, 0, 0 }, ! { "fsr35", 1059, {0, {0}}, 0, 0 }, ! { "fsr36", 1060, {0, {0}}, 0, 0 }, ! { "fsr37", 1061, {0, {0}}, 0, 0 }, ! { "fsr38", 1062, {0, {0}}, 0, 0 }, ! { "fsr39", 1063, {0, {0}}, 0, 0 }, ! { "fsr40", 1064, {0, {0}}, 0, 0 }, ! { "fsr41", 1065, {0, {0}}, 0, 0 }, ! { "fsr42", 1066, {0, {0}}, 0, 0 }, ! { "fsr43", 1067, {0, {0}}, 0, 0 }, ! { "fsr44", 1068, {0, {0}}, 0, 0 }, ! { "fsr45", 1069, {0, {0}}, 0, 0 }, ! { "fsr46", 1070, {0, {0}}, 0, 0 }, ! { "fsr47", 1071, {0, {0}}, 0, 0 }, ! { "fsr48", 1072, {0, {0}}, 0, 0 }, ! { "fsr49", 1073, {0, {0}}, 0, 0 }, ! { "fsr50", 1074, {0, {0}}, 0, 0 }, ! { "fsr51", 1075, {0, {0}}, 0, 0 }, ! { "fsr52", 1076, {0, {0}}, 0, 0 }, ! { "fsr53", 1077, {0, {0}}, 0, 0 }, ! { "fsr54", 1078, {0, {0}}, 0, 0 }, ! { "fsr55", 1079, {0, {0}}, 0, 0 }, ! { "fsr56", 1080, {0, {0}}, 0, 0 }, ! { "fsr57", 1081, {0, {0}}, 0, 0 }, ! { "fsr58", 1082, {0, {0}}, 0, 0 }, ! { "fsr59", 1083, {0, {0}}, 0, 0 }, ! { "fsr60", 1084, {0, {0}}, 0, 0 }, ! { "fsr61", 1085, {0, {0}}, 0, 0 }, ! { "fsr62", 1086, {0, {0}}, 0, 0 }, ! { "fsr63", 1087, {0, {0}}, 0, 0 }, ! { "fqop0", 1088, {0, {0}}, 0, 0 }, ! { "fqop1", 1090, {0, {0}}, 0, 0 }, ! { "fqop2", 1092, {0, {0}}, 0, 0 }, ! { "fqop3", 1094, {0, {0}}, 0, 0 }, ! { "fqop4", 1096, {0, {0}}, 0, 0 }, ! { "fqop5", 1098, {0, {0}}, 0, 0 }, ! { "fqop6", 1100, {0, {0}}, 0, 0 }, ! { "fqop7", 1102, {0, {0}}, 0, 0 }, ! { "fqop8", 1104, {0, {0}}, 0, 0 }, ! { "fqop9", 1106, {0, {0}}, 0, 0 }, ! { "fqop10", 1108, {0, {0}}, 0, 0 }, ! { "fqop11", 1110, {0, {0}}, 0, 0 }, ! { "fqop12", 1112, {0, {0}}, 0, 0 }, ! { "fqop13", 1114, {0, {0}}, 0, 0 }, ! { "fqop14", 1116, {0, {0}}, 0, 0 }, ! { "fqop15", 1118, {0, {0}}, 0, 0 }, ! { "fqop16", 1120, {0, {0}}, 0, 0 }, ! { "fqop17", 1122, {0, {0}}, 0, 0 }, ! { "fqop18", 1124, {0, {0}}, 0, 0 }, ! { "fqop19", 1126, {0, {0}}, 0, 0 }, ! { "fqop20", 1128, {0, {0}}, 0, 0 }, ! { "fqop21", 1130, {0, {0}}, 0, 0 }, ! { "fqop22", 1132, {0, {0}}, 0, 0 }, ! { "fqop23", 1134, {0, {0}}, 0, 0 }, ! { "fqop24", 1136, {0, {0}}, 0, 0 }, ! { "fqop25", 1138, {0, {0}}, 0, 0 }, ! { "fqop26", 1140, {0, {0}}, 0, 0 }, ! { "fqop27", 1142, {0, {0}}, 0, 0 }, ! { "fqop28", 1144, {0, {0}}, 0, 0 }, ! { "fqop29", 1146, {0, {0}}, 0, 0 }, ! { "fqop30", 1148, {0, {0}}, 0, 0 }, ! { "fqop31", 1150, {0, {0}}, 0, 0 }, ! { "fqst0", 1089, {0, {0}}, 0, 0 }, ! { "fqst1", 1091, {0, {0}}, 0, 0 }, ! { "fqst2", 1093, {0, {0}}, 0, 0 }, ! { "fqst3", 1095, {0, {0}}, 0, 0 }, ! { "fqst4", 1097, {0, {0}}, 0, 0 }, ! { "fqst5", 1099, {0, {0}}, 0, 0 }, ! { "fqst6", 1101, {0, {0}}, 0, 0 }, ! { "fqst7", 1103, {0, {0}}, 0, 0 }, ! { "fqst8", 1105, {0, {0}}, 0, 0 }, ! { "fqst9", 1107, {0, {0}}, 0, 0 }, ! { "fqst10", 1109, {0, {0}}, 0, 0 }, ! { "fqst11", 1111, {0, {0}}, 0, 0 }, ! { "fqst12", 1113, {0, {0}}, 0, 0 }, ! { "fqst13", 1115, {0, {0}}, 0, 0 }, ! { "fqst14", 1117, {0, {0}}, 0, 0 }, ! { "fqst15", 1119, {0, {0}}, 0, 0 }, ! { "fqst16", 1121, {0, {0}}, 0, 0 }, ! { "fqst17", 1123, {0, {0}}, 0, 0 }, ! { "fqst18", 1125, {0, {0}}, 0, 0 }, ! { "fqst19", 1127, {0, {0}}, 0, 0 }, ! { "fqst20", 1129, {0, {0}}, 0, 0 }, ! { "fqst21", 1131, {0, {0}}, 0, 0 }, ! { "fqst22", 1133, {0, {0}}, 0, 0 }, ! { "fqst23", 1135, {0, {0}}, 0, 0 }, ! { "fqst24", 1137, {0, {0}}, 0, 0 }, ! { "fqst25", 1139, {0, {0}}, 0, 0 }, ! { "fqst26", 1141, {0, {0}}, 0, 0 }, ! { "fqst27", 1143, {0, {0}}, 0, 0 }, ! { "fqst28", 1145, {0, {0}}, 0, 0 }, ! { "fqst29", 1147, {0, {0}}, 0, 0 }, ! { "fqst30", 1149, {0, {0}}, 0, 0 }, ! { "fqst31", 1151, {0, {0}}, 0, 0 }, ! { "mcilr0", 1272, {0, {0}}, 0, 0 }, ! { "mcilr1", 1273, {0, {0}}, 0, 0 }, ! { "msr0", 1280, {0, {0}}, 0, 0 }, ! { "msr1", 1281, {0, {0}}, 0, 0 }, ! { "msr2", 1282, {0, {0}}, 0, 0 }, ! { "msr3", 1283, {0, {0}}, 0, 0 }, ! { "msr4", 1284, {0, {0}}, 0, 0 }, ! { "msr5", 1285, {0, {0}}, 0, 0 }, ! { "msr6", 1286, {0, {0}}, 0, 0 }, ! { "msr7", 1287, {0, {0}}, 0, 0 }, ! { "msr8", 1288, {0, {0}}, 0, 0 }, ! { "msr9", 1289, {0, {0}}, 0, 0 }, ! { "msr10", 1290, {0, {0}}, 0, 0 }, ! { "msr11", 1291, {0, {0}}, 0, 0 }, ! { "msr12", 1292, {0, {0}}, 0, 0 }, ! { "msr13", 1293, {0, {0}}, 0, 0 }, ! { "msr14", 1294, {0, {0}}, 0, 0 }, ! { "msr15", 1295, {0, {0}}, 0, 0 }, ! { "msr16", 1296, {0, {0}}, 0, 0 }, ! { "msr17", 1297, {0, {0}}, 0, 0 }, ! { "msr18", 1298, {0, {0}}, 0, 0 }, ! { "msr19", 1299, {0, {0}}, 0, 0 }, ! { "msr20", 1300, {0, {0}}, 0, 0 }, ! { "msr21", 1301, {0, {0}}, 0, 0 }, ! { "msr22", 1302, {0, {0}}, 0, 0 }, ! { "msr23", 1303, {0, {0}}, 0, 0 }, ! { "msr24", 1304, {0, {0}}, 0, 0 }, ! { "msr25", 1305, {0, {0}}, 0, 0 }, ! { "msr26", 1306, {0, {0}}, 0, 0 }, ! { "msr27", 1307, {0, {0}}, 0, 0 }, ! { "msr28", 1308, {0, {0}}, 0, 0 }, ! { "msr29", 1309, {0, {0}}, 0, 0 }, ! { "msr30", 1310, {0, {0}}, 0, 0 }, ! { "msr31", 1311, {0, {0}}, 0, 0 }, ! { "msr32", 1312, {0, {0}}, 0, 0 }, ! { "msr33", 1313, {0, {0}}, 0, 0 }, ! { "msr34", 1314, {0, {0}}, 0, 0 }, ! { "msr35", 1315, {0, {0}}, 0, 0 }, ! { "msr36", 1316, {0, {0}}, 0, 0 }, ! { "msr37", 1317, {0, {0}}, 0, 0 }, ! { "msr38", 1318, {0, {0}}, 0, 0 }, ! { "msr39", 1319, {0, {0}}, 0, 0 }, ! { "msr40", 1320, {0, {0}}, 0, 0 }, ! { "msr41", 1321, {0, {0}}, 0, 0 }, ! { "msr42", 1322, {0, {0}}, 0, 0 }, ! { "msr43", 1323, {0, {0}}, 0, 0 }, ! { "msr44", 1324, {0, {0}}, 0, 0 }, ! { "msr45", 1325, {0, {0}}, 0, 0 }, ! { "msr46", 1326, {0, {0}}, 0, 0 }, ! { "msr47", 1327, {0, {0}}, 0, 0 }, ! { "msr48", 1328, {0, {0}}, 0, 0 }, ! { "msr49", 1329, {0, {0}}, 0, 0 }, ! { "msr50", 1330, {0, {0}}, 0, 0 }, ! { "msr51", 1331, {0, {0}}, 0, 0 }, ! { "msr52", 1332, {0, {0}}, 0, 0 }, ! { "msr53", 1333, {0, {0}}, 0, 0 }, ! { "msr54", 1334, {0, {0}}, 0, 0 }, ! { "msr55", 1335, {0, {0}}, 0, 0 }, ! { "msr56", 1336, {0, {0}}, 0, 0 }, ! { "msr57", 1337, {0, {0}}, 0, 0 }, ! { "msr58", 1338, {0, {0}}, 0, 0 }, ! { "msr59", 1339, {0, {0}}, 0, 0 }, ! { "msr60", 1340, {0, {0}}, 0, 0 }, ! { "msr61", 1341, {0, {0}}, 0, 0 }, ! { "msr62", 1342, {0, {0}}, 0, 0 }, ! { "msr63", 1343, {0, {0}}, 0, 0 }, ! { "mqop0", 1344, {0, {0}}, 0, 0 }, ! { "mqop1", 1346, {0, {0}}, 0, 0 }, ! { "mqop2", 1348, {0, {0}}, 0, 0 }, ! { "mqop3", 1350, {0, {0}}, 0, 0 }, ! { "mqop4", 1352, {0, {0}}, 0, 0 }, ! { "mqop5", 1354, {0, {0}}, 0, 0 }, ! { "mqop6", 1356, {0, {0}}, 0, 0 }, ! { "mqop7", 1358, {0, {0}}, 0, 0 }, ! { "mqop8", 1360, {0, {0}}, 0, 0 }, ! { "mqop9", 1362, {0, {0}}, 0, 0 }, ! { "mqop10", 1364, {0, {0}}, 0, 0 }, ! { "mqop11", 1366, {0, {0}}, 0, 0 }, ! { "mqop12", 1368, {0, {0}}, 0, 0 }, ! { "mqop13", 1370, {0, {0}}, 0, 0 }, ! { "mqop14", 1372, {0, {0}}, 0, 0 }, ! { "mqop15", 1374, {0, {0}}, 0, 0 }, ! { "mqop16", 1376, {0, {0}}, 0, 0 }, ! { "mqop17", 1378, {0, {0}}, 0, 0 }, ! { "mqop18", 1380, {0, {0}}, 0, 0 }, ! { "mqop19", 1382, {0, {0}}, 0, 0 }, ! { "mqop20", 1384, {0, {0}}, 0, 0 }, ! { "mqop21", 1386, {0, {0}}, 0, 0 }, ! { "mqop22", 1388, {0, {0}}, 0, 0 }, ! { "mqop23", 1390, {0, {0}}, 0, 0 }, ! { "mqop24", 1392, {0, {0}}, 0, 0 }, ! { "mqop25", 1394, {0, {0}}, 0, 0 }, ! { "mqop26", 1396, {0, {0}}, 0, 0 }, ! { "mqop27", 1398, {0, {0}}, 0, 0 }, ! { "mqop28", 1400, {0, {0}}, 0, 0 }, ! { "mqop29", 1402, {0, {0}}, 0, 0 }, ! { "mqop30", 1404, {0, {0}}, 0, 0 }, ! { "mqop31", 1406, {0, {0}}, 0, 0 }, ! { "mqst0", 1345, {0, {0}}, 0, 0 }, ! { "mqst1", 1347, {0, {0}}, 0, 0 }, ! { "mqst2", 1349, {0, {0}}, 0, 0 }, ! { "mqst3", 1351, {0, {0}}, 0, 0 }, ! { "mqst4", 1353, {0, {0}}, 0, 0 }, ! { "mqst5", 1355, {0, {0}}, 0, 0 }, ! { "mqst6", 1357, {0, {0}}, 0, 0 }, ! { "mqst7", 1359, {0, {0}}, 0, 0 }, ! { "mqst8", 1361, {0, {0}}, 0, 0 }, ! { "mqst9", 1363, {0, {0}}, 0, 0 }, ! { "mqst10", 1365, {0, {0}}, 0, 0 }, ! { "mqst11", 1367, {0, {0}}, 0, 0 }, ! { "mqst12", 1369, {0, {0}}, 0, 0 }, ! { "mqst13", 1371, {0, {0}}, 0, 0 }, ! { "mqst14", 1373, {0, {0}}, 0, 0 }, ! { "mqst15", 1375, {0, {0}}, 0, 0 }, ! { "mqst16", 1377, {0, {0}}, 0, 0 }, ! { "mqst17", 1379, {0, {0}}, 0, 0 }, ! { "mqst18", 1381, {0, {0}}, 0, 0 }, ! { "mqst19", 1383, {0, {0}}, 0, 0 }, ! { "mqst20", 1385, {0, {0}}, 0, 0 }, ! { "mqst21", 1387, {0, {0}}, 0, 0 }, ! { "mqst22", 1389, {0, {0}}, 0, 0 }, ! { "mqst23", 1391, {0, {0}}, 0, 0 }, ! { "mqst24", 1393, {0, {0}}, 0, 0 }, ! { "mqst25", 1395, {0, {0}}, 0, 0 }, ! { "mqst26", 1397, {0, {0}}, 0, 0 }, ! { "mqst27", 1399, {0, {0}}, 0, 0 }, ! { "mqst28", 1401, {0, {0}}, 0, 0 }, ! { "mqst29", 1403, {0, {0}}, 0, 0 }, ! { "mqst30", 1405, {0, {0}}, 0, 0 }, ! { "mqst31", 1407, {0, {0}}, 0, 0 }, ! { "ear0", 1536, {0, {0}}, 0, 0 }, ! { "ear1", 1537, {0, {0}}, 0, 0 }, ! { "ear2", 1538, {0, {0}}, 0, 0 }, ! { "ear3", 1539, {0, {0}}, 0, 0 }, ! { "ear4", 1540, {0, {0}}, 0, 0 }, ! { "ear5", 1541, {0, {0}}, 0, 0 }, ! { "ear6", 1542, {0, {0}}, 0, 0 }, ! { "ear7", 1543, {0, {0}}, 0, 0 }, ! { "ear8", 1544, {0, {0}}, 0, 0 }, ! { "ear9", 1545, {0, {0}}, 0, 0 }, ! { "ear10", 1546, {0, {0}}, 0, 0 }, ! { "ear11", 1547, {0, {0}}, 0, 0 }, ! { "ear12", 1548, {0, {0}}, 0, 0 }, ! { "ear13", 1549, {0, {0}}, 0, 0 }, ! { "ear14", 1550, {0, {0}}, 0, 0 }, ! { "ear15", 1551, {0, {0}}, 0, 0 }, ! { "ear16", 1552, {0, {0}}, 0, 0 }, ! { "ear17", 1553, {0, {0}}, 0, 0 }, ! { "ear18", 1554, {0, {0}}, 0, 0 }, ! { "ear19", 1555, {0, {0}}, 0, 0 }, ! { "ear20", 1556, {0, {0}}, 0, 0 }, ! { "ear21", 1557, {0, {0}}, 0, 0 }, ! { "ear22", 1558, {0, {0}}, 0, 0 }, ! { "ear23", 1559, {0, {0}}, 0, 0 }, ! { "ear24", 1560, {0, {0}}, 0, 0 }, ! { "ear25", 1561, {0, {0}}, 0, 0 }, ! { "ear26", 1562, {0, {0}}, 0, 0 }, ! { "ear27", 1563, {0, {0}}, 0, 0 }, ! { "ear28", 1564, {0, {0}}, 0, 0 }, ! { "ear29", 1565, {0, {0}}, 0, 0 }, ! { "ear30", 1566, {0, {0}}, 0, 0 }, ! { "ear31", 1567, {0, {0}}, 0, 0 }, ! { "ear32", 1568, {0, {0}}, 0, 0 }, ! { "ear33", 1569, {0, {0}}, 0, 0 }, ! { "ear34", 1570, {0, {0}}, 0, 0 }, ! { "ear35", 1571, {0, {0}}, 0, 0 }, ! { "ear36", 1572, {0, {0}}, 0, 0 }, ! { "ear37", 1573, {0, {0}}, 0, 0 }, ! { "ear38", 1574, {0, {0}}, 0, 0 }, ! { "ear39", 1575, {0, {0}}, 0, 0 }, ! { "ear40", 1576, {0, {0}}, 0, 0 }, ! { "ear41", 1577, {0, {0}}, 0, 0 }, ! { "ear42", 1578, {0, {0}}, 0, 0 }, ! { "ear43", 1579, {0, {0}}, 0, 0 }, ! { "ear44", 1580, {0, {0}}, 0, 0 }, ! { "ear45", 1581, {0, {0}}, 0, 0 }, ! { "ear46", 1582, {0, {0}}, 0, 0 }, ! { "ear47", 1583, {0, {0}}, 0, 0 }, ! { "ear48", 1584, {0, {0}}, 0, 0 }, ! { "ear49", 1585, {0, {0}}, 0, 0 }, ! { "ear50", 1586, {0, {0}}, 0, 0 }, ! { "ear51", 1587, {0, {0}}, 0, 0 }, ! { "ear52", 1588, {0, {0}}, 0, 0 }, ! { "ear53", 1589, {0, {0}}, 0, 0 }, ! { "ear54", 1590, {0, {0}}, 0, 0 }, ! { "ear55", 1591, {0, {0}}, 0, 0 }, ! { "ear56", 1592, {0, {0}}, 0, 0 }, ! { "ear57", 1593, {0, {0}}, 0, 0 }, ! { "ear58", 1594, {0, {0}}, 0, 0 }, ! { "ear59", 1595, {0, {0}}, 0, 0 }, ! { "ear60", 1596, {0, {0}}, 0, 0 }, ! { "ear61", 1597, {0, {0}}, 0, 0 }, ! { "ear62", 1598, {0, {0}}, 0, 0 }, ! { "ear63", 1599, {0, {0}}, 0, 0 }, ! { "edr0", 1600, {0, {0}}, 0, 0 }, ! { "edr1", 1601, {0, {0}}, 0, 0 }, ! { "edr2", 1602, {0, {0}}, 0, 0 }, ! { "edr3", 1603, {0, {0}}, 0, 0 }, ! { "edr4", 1604, {0, {0}}, 0, 0 }, ! { "edr5", 1605, {0, {0}}, 0, 0 }, ! { "edr6", 1606, {0, {0}}, 0, 0 }, ! { "edr7", 1607, {0, {0}}, 0, 0 }, ! { "edr8", 1608, {0, {0}}, 0, 0 }, ! { "edr9", 1609, {0, {0}}, 0, 0 }, ! { "edr10", 1610, {0, {0}}, 0, 0 }, ! { "edr11", 1611, {0, {0}}, 0, 0 }, ! { "edr12", 1612, {0, {0}}, 0, 0 }, ! { "edr13", 1613, {0, {0}}, 0, 0 }, ! { "edr14", 1614, {0, {0}}, 0, 0 }, ! { "edr15", 1615, {0, {0}}, 0, 0 }, ! { "edr16", 1616, {0, {0}}, 0, 0 }, ! { "edr17", 1617, {0, {0}}, 0, 0 }, ! { "edr18", 1618, {0, {0}}, 0, 0 }, ! { "edr19", 1619, {0, {0}}, 0, 0 }, ! { "edr20", 1620, {0, {0}}, 0, 0 }, ! { "edr21", 1621, {0, {0}}, 0, 0 }, ! { "edr22", 1622, {0, {0}}, 0, 0 }, ! { "edr23", 1623, {0, {0}}, 0, 0 }, ! { "edr24", 1624, {0, {0}}, 0, 0 }, ! { "edr25", 1625, {0, {0}}, 0, 0 }, ! { "edr26", 1626, {0, {0}}, 0, 0 }, ! { "edr27", 1627, {0, {0}}, 0, 0 }, ! { "edr28", 1628, {0, {0}}, 0, 0 }, ! { "edr29", 1629, {0, {0}}, 0, 0 }, ! { "edr30", 1630, {0, {0}}, 0, 0 }, ! { "edr31", 1631, {0, {0}}, 0, 0 }, ! { "edr32", 1632, {0, {0}}, 0, 0 }, ! { "edr33", 1636, {0, {0}}, 0, 0 }, ! { "edr34", 1634, {0, {0}}, 0, 0 }, ! { "edr35", 1635, {0, {0}}, 0, 0 }, ! { "edr36", 1636, {0, {0}}, 0, 0 }, ! { "edr37", 1637, {0, {0}}, 0, 0 }, ! { "edr38", 1638, {0, {0}}, 0, 0 }, ! { "edr39", 1639, {0, {0}}, 0, 0 }, ! { "edr40", 1640, {0, {0}}, 0, 0 }, ! { "edr41", 1641, {0, {0}}, 0, 0 }, ! { "edr42", 1642, {0, {0}}, 0, 0 }, ! { "edr43", 1643, {0, {0}}, 0, 0 }, ! { "edr44", 1644, {0, {0}}, 0, 0 }, ! { "edr45", 1645, {0, {0}}, 0, 0 }, ! { "edr46", 1646, {0, {0}}, 0, 0 }, ! { "edr47", 1647, {0, {0}}, 0, 0 }, ! { "edr48", 1648, {0, {0}}, 0, 0 }, ! { "edr49", 1649, {0, {0}}, 0, 0 }, ! { "edr50", 1650, {0, {0}}, 0, 0 }, ! { "edr51", 1651, {0, {0}}, 0, 0 }, ! { "edr52", 1652, {0, {0}}, 0, 0 }, ! { "edr53", 1653, {0, {0}}, 0, 0 }, ! { "edr54", 1654, {0, {0}}, 0, 0 }, ! { "edr55", 1655, {0, {0}}, 0, 0 }, ! { "edr56", 1656, {0, {0}}, 0, 0 }, ! { "edr57", 1657, {0, {0}}, 0, 0 }, ! { "edr58", 1658, {0, {0}}, 0, 0 }, ! { "edr59", 1659, {0, {0}}, 0, 0 }, ! { "edr60", 1660, {0, {0}}, 0, 0 }, ! { "edr61", 1661, {0, {0}}, 0, 0 }, ! { "edr62", 1662, {0, {0}}, 0, 0 }, ! { "edr63", 1663, {0, {0}}, 0, 0 }, ! { "iamlr0", 1664, {0, {0}}, 0, 0 }, ! { "iamlr1", 1665, {0, {0}}, 0, 0 }, ! { "iamlr2", 1666, {0, {0}}, 0, 0 }, ! { "iamlr3", 1667, {0, {0}}, 0, 0 }, ! { "iamlr4", 1668, {0, {0}}, 0, 0 }, ! { "iamlr5", 1669, {0, {0}}, 0, 0 }, ! { "iamlr6", 1670, {0, {0}}, 0, 0 }, ! { "iamlr7", 1671, {0, {0}}, 0, 0 }, ! { "iamlr8", 1672, {0, {0}}, 0, 0 }, ! { "iamlr9", 1673, {0, {0}}, 0, 0 }, ! { "iamlr10", 1674, {0, {0}}, 0, 0 }, ! { "iamlr11", 1675, {0, {0}}, 0, 0 }, ! { "iamlr12", 1676, {0, {0}}, 0, 0 }, ! { "iamlr13", 1677, {0, {0}}, 0, 0 }, ! { "iamlr14", 1678, {0, {0}}, 0, 0 }, ! { "iamlr15", 1679, {0, {0}}, 0, 0 }, ! { "iamlr16", 1680, {0, {0}}, 0, 0 }, ! { "iamlr17", 1681, {0, {0}}, 0, 0 }, ! { "iamlr18", 1682, {0, {0}}, 0, 0 }, ! { "iamlr19", 1683, {0, {0}}, 0, 0 }, ! { "iamlr20", 1684, {0, {0}}, 0, 0 }, ! { "iamlr21", 1685, {0, {0}}, 0, 0 }, ! { "iamlr22", 1686, {0, {0}}, 0, 0 }, ! { "iamlr23", 1687, {0, {0}}, 0, 0 }, ! { "iamlr24", 1688, {0, {0}}, 0, 0 }, ! { "iamlr25", 1689, {0, {0}}, 0, 0 }, ! { "iamlr26", 1690, {0, {0}}, 0, 0 }, ! { "iamlr27", 1691, {0, {0}}, 0, 0 }, ! { "iamlr28", 1692, {0, {0}}, 0, 0 }, ! { "iamlr29", 1693, {0, {0}}, 0, 0 }, ! { "iamlr30", 1694, {0, {0}}, 0, 0 }, ! { "iamlr31", 1695, {0, {0}}, 0, 0 }, ! { "iamlr32", 1696, {0, {0}}, 0, 0 }, ! { "iamlr33", 1697, {0, {0}}, 0, 0 }, ! { "iamlr34", 1698, {0, {0}}, 0, 0 }, ! { "iamlr35", 1699, {0, {0}}, 0, 0 }, ! { "iamlr36", 1700, {0, {0}}, 0, 0 }, ! { "iamlr37", 1701, {0, {0}}, 0, 0 }, ! { "iamlr38", 1702, {0, {0}}, 0, 0 }, ! { "iamlr39", 1703, {0, {0}}, 0, 0 }, ! { "iamlr40", 1704, {0, {0}}, 0, 0 }, ! { "iamlr41", 1705, {0, {0}}, 0, 0 }, ! { "iamlr42", 1706, {0, {0}}, 0, 0 }, ! { "iamlr43", 1707, {0, {0}}, 0, 0 }, ! { "iamlr44", 1708, {0, {0}}, 0, 0 }, ! { "iamlr45", 1709, {0, {0}}, 0, 0 }, ! { "iamlr46", 1710, {0, {0}}, 0, 0 }, ! { "iamlr47", 1711, {0, {0}}, 0, 0 }, ! { "iamlr48", 1712, {0, {0}}, 0, 0 }, ! { "iamlr49", 1713, {0, {0}}, 0, 0 }, ! { "iamlr50", 1714, {0, {0}}, 0, 0 }, ! { "iamlr51", 1715, {0, {0}}, 0, 0 }, ! { "iamlr52", 1716, {0, {0}}, 0, 0 }, ! { "iamlr53", 1717, {0, {0}}, 0, 0 }, ! { "iamlr54", 1718, {0, {0}}, 0, 0 }, ! { "iamlr55", 1719, {0, {0}}, 0, 0 }, ! { "iamlr56", 1720, {0, {0}}, 0, 0 }, ! { "iamlr57", 1721, {0, {0}}, 0, 0 }, ! { "iamlr58", 1722, {0, {0}}, 0, 0 }, ! { "iamlr59", 1723, {0, {0}}, 0, 0 }, ! { "iamlr60", 1724, {0, {0}}, 0, 0 }, ! { "iamlr61", 1725, {0, {0}}, 0, 0 }, ! { "iamlr62", 1726, {0, {0}}, 0, 0 }, ! { "iamlr63", 1727, {0, {0}}, 0, 0 }, ! { "iampr0", 1728, {0, {0}}, 0, 0 }, ! { "iampr1", 1729, {0, {0}}, 0, 0 }, ! { "iampr2", 1730, {0, {0}}, 0, 0 }, ! { "iampr3", 1731, {0, {0}}, 0, 0 }, ! { "iampr4", 1732, {0, {0}}, 0, 0 }, ! { "iampr5", 1733, {0, {0}}, 0, 0 }, ! { "iampr6", 1734, {0, {0}}, 0, 0 }, ! { "iampr7", 1735, {0, {0}}, 0, 0 }, ! { "iampr8", 1736, {0, {0}}, 0, 0 }, ! { "iampr9", 1737, {0, {0}}, 0, 0 }, ! { "iampr10", 1738, {0, {0}}, 0, 0 }, ! { "iampr11", 1739, {0, {0}}, 0, 0 }, ! { "iampr12", 1740, {0, {0}}, 0, 0 }, ! { "iampr13", 1741, {0, {0}}, 0, 0 }, ! { "iampr14", 1742, {0, {0}}, 0, 0 }, ! { "iampr15", 1743, {0, {0}}, 0, 0 }, ! { "iampr16", 1744, {0, {0}}, 0, 0 }, ! { "iampr17", 1745, {0, {0}}, 0, 0 }, ! { "iampr18", 1746, {0, {0}}, 0, 0 }, ! { "iampr19", 1747, {0, {0}}, 0, 0 }, ! { "iampr20", 1748, {0, {0}}, 0, 0 }, ! { "iampr21", 1749, {0, {0}}, 0, 0 }, ! { "iampr22", 1750, {0, {0}}, 0, 0 }, ! { "iampr23", 1751, {0, {0}}, 0, 0 }, ! { "iampr24", 1752, {0, {0}}, 0, 0 }, ! { "iampr25", 1753, {0, {0}}, 0, 0 }, ! { "iampr26", 1754, {0, {0}}, 0, 0 }, ! { "iampr27", 1755, {0, {0}}, 0, 0 }, ! { "iampr28", 1756, {0, {0}}, 0, 0 }, ! { "iampr29", 1757, {0, {0}}, 0, 0 }, ! { "iampr30", 1758, {0, {0}}, 0, 0 }, ! { "iampr31", 1759, {0, {0}}, 0, 0 }, ! { "iampr32", 1760, {0, {0}}, 0, 0 }, ! { "iampr33", 1761, {0, {0}}, 0, 0 }, ! { "iampr34", 1762, {0, {0}}, 0, 0 }, ! { "iampr35", 1763, {0, {0}}, 0, 0 }, ! { "iampr36", 1764, {0, {0}}, 0, 0 }, ! { "iampr37", 1765, {0, {0}}, 0, 0 }, ! { "iampr38", 1766, {0, {0}}, 0, 0 }, ! { "iampr39", 1767, {0, {0}}, 0, 0 }, ! { "iampr40", 1768, {0, {0}}, 0, 0 }, ! { "iampr41", 1769, {0, {0}}, 0, 0 }, ! { "iampr42", 1770, {0, {0}}, 0, 0 }, ! { "iampr43", 1771, {0, {0}}, 0, 0 }, ! { "iampr44", 1772, {0, {0}}, 0, 0 }, ! { "iampr45", 1773, {0, {0}}, 0, 0 }, ! { "iampr46", 1774, {0, {0}}, 0, 0 }, ! { "iampr47", 1775, {0, {0}}, 0, 0 }, ! { "iampr48", 1776, {0, {0}}, 0, 0 }, ! { "iampr49", 1777, {0, {0}}, 0, 0 }, ! { "iampr50", 1778, {0, {0}}, 0, 0 }, ! { "iampr51", 1779, {0, {0}}, 0, 0 }, ! { "iampr52", 1780, {0, {0}}, 0, 0 }, ! { "iampr53", 1781, {0, {0}}, 0, 0 }, ! { "iampr54", 1782, {0, {0}}, 0, 0 }, ! { "iampr55", 1783, {0, {0}}, 0, 0 }, ! { "iampr56", 1784, {0, {0}}, 0, 0 }, ! { "iampr57", 1785, {0, {0}}, 0, 0 }, ! { "iampr58", 1786, {0, {0}}, 0, 0 }, ! { "iampr59", 1787, {0, {0}}, 0, 0 }, ! { "iampr60", 1788, {0, {0}}, 0, 0 }, ! { "iampr61", 1789, {0, {0}}, 0, 0 }, ! { "iampr62", 1790, {0, {0}}, 0, 0 }, ! { "iampr63", 1791, {0, {0}}, 0, 0 }, ! { "damlr0", 1792, {0, {0}}, 0, 0 }, ! { "damlr1", 1793, {0, {0}}, 0, 0 }, ! { "damlr2", 1794, {0, {0}}, 0, 0 }, ! { "damlr3", 1795, {0, {0}}, 0, 0 }, ! { "damlr4", 1796, {0, {0}}, 0, 0 }, ! { "damlr5", 1797, {0, {0}}, 0, 0 }, ! { "damlr6", 1798, {0, {0}}, 0, 0 }, ! { "damlr7", 1799, {0, {0}}, 0, 0 }, ! { "damlr8", 1800, {0, {0}}, 0, 0 }, ! { "damlr9", 1801, {0, {0}}, 0, 0 }, ! { "damlr10", 1802, {0, {0}}, 0, 0 }, ! { "damlr11", 1803, {0, {0}}, 0, 0 }, ! { "damlr12", 1804, {0, {0}}, 0, 0 }, ! { "damlr13", 1805, {0, {0}}, 0, 0 }, ! { "damlr14", 1806, {0, {0}}, 0, 0 }, ! { "damlr15", 1807, {0, {0}}, 0, 0 }, ! { "damlr16", 1808, {0, {0}}, 0, 0 }, ! { "damlr17", 1809, {0, {0}}, 0, 0 }, ! { "damlr18", 1810, {0, {0}}, 0, 0 }, ! { "damlr19", 1811, {0, {0}}, 0, 0 }, ! { "damlr20", 1812, {0, {0}}, 0, 0 }, ! { "damlr21", 1813, {0, {0}}, 0, 0 }, ! { "damlr22", 1814, {0, {0}}, 0, 0 }, ! { "damlr23", 1815, {0, {0}}, 0, 0 }, ! { "damlr24", 1816, {0, {0}}, 0, 0 }, ! { "damlr25", 1817, {0, {0}}, 0, 0 }, ! { "damlr26", 1818, {0, {0}}, 0, 0 }, ! { "damlr27", 1819, {0, {0}}, 0, 0 }, ! { "damlr28", 1820, {0, {0}}, 0, 0 }, ! { "damlr29", 1821, {0, {0}}, 0, 0 }, ! { "damlr30", 1822, {0, {0}}, 0, 0 }, ! { "damlr31", 1823, {0, {0}}, 0, 0 }, ! { "damlr32", 1824, {0, {0}}, 0, 0 }, ! { "damlr33", 1825, {0, {0}}, 0, 0 }, ! { "damlr34", 1826, {0, {0}}, 0, 0 }, ! { "damlr35", 1827, {0, {0}}, 0, 0 }, ! { "damlr36", 1828, {0, {0}}, 0, 0 }, ! { "damlr37", 1829, {0, {0}}, 0, 0 }, ! { "damlr38", 1830, {0, {0}}, 0, 0 }, ! { "damlr39", 1831, {0, {0}}, 0, 0 }, ! { "damlr40", 1832, {0, {0}}, 0, 0 }, ! { "damlr41", 1833, {0, {0}}, 0, 0 }, ! { "damlr42", 1834, {0, {0}}, 0, 0 }, ! { "damlr43", 1835, {0, {0}}, 0, 0 }, ! { "damlr44", 1836, {0, {0}}, 0, 0 }, ! { "damlr45", 1837, {0, {0}}, 0, 0 }, ! { "damlr46", 1838, {0, {0}}, 0, 0 }, ! { "damlr47", 1839, {0, {0}}, 0, 0 }, ! { "damlr48", 1840, {0, {0}}, 0, 0 }, ! { "damlr49", 1841, {0, {0}}, 0, 0 }, ! { "damlr50", 1842, {0, {0}}, 0, 0 }, ! { "damlr51", 1843, {0, {0}}, 0, 0 }, ! { "damlr52", 1844, {0, {0}}, 0, 0 }, ! { "damlr53", 1845, {0, {0}}, 0, 0 }, ! { "damlr54", 1846, {0, {0}}, 0, 0 }, ! { "damlr55", 1847, {0, {0}}, 0, 0 }, ! { "damlr56", 1848, {0, {0}}, 0, 0 }, ! { "damlr57", 1849, {0, {0}}, 0, 0 }, ! { "damlr58", 1850, {0, {0}}, 0, 0 }, ! { "damlr59", 1851, {0, {0}}, 0, 0 }, ! { "damlr60", 1852, {0, {0}}, 0, 0 }, ! { "damlr61", 1853, {0, {0}}, 0, 0 }, ! { "damlr62", 1854, {0, {0}}, 0, 0 }, ! { "damlr63", 1855, {0, {0}}, 0, 0 }, ! { "dampr0", 1856, {0, {0}}, 0, 0 }, ! { "dampr1", 1857, {0, {0}}, 0, 0 }, ! { "dampr2", 1858, {0, {0}}, 0, 0 }, ! { "dampr3", 1859, {0, {0}}, 0, 0 }, ! { "dampr4", 1860, {0, {0}}, 0, 0 }, ! { "dampr5", 1861, {0, {0}}, 0, 0 }, ! { "dampr6", 1862, {0, {0}}, 0, 0 }, ! { "dampr7", 1863, {0, {0}}, 0, 0 }, ! { "dampr8", 1864, {0, {0}}, 0, 0 }, ! { "dampr9", 1865, {0, {0}}, 0, 0 }, ! { "dampr10", 1866, {0, {0}}, 0, 0 }, ! { "dampr11", 1867, {0, {0}}, 0, 0 }, ! { "dampr12", 1868, {0, {0}}, 0, 0 }, ! { "dampr13", 1869, {0, {0}}, 0, 0 }, ! { "dampr14", 1870, {0, {0}}, 0, 0 }, ! { "dampr15", 1871, {0, {0}}, 0, 0 }, ! { "dampr16", 1872, {0, {0}}, 0, 0 }, ! { "dampr17", 1873, {0, {0}}, 0, 0 }, ! { "dampr18", 1874, {0, {0}}, 0, 0 }, ! { "dampr19", 1875, {0, {0}}, 0, 0 }, ! { "dampr20", 1876, {0, {0}}, 0, 0 }, ! { "dampr21", 1877, {0, {0}}, 0, 0 }, ! { "dampr22", 1878, {0, {0}}, 0, 0 }, ! { "dampr23", 1879, {0, {0}}, 0, 0 }, ! { "dampr24", 1880, {0, {0}}, 0, 0 }, ! { "dampr25", 1881, {0, {0}}, 0, 0 }, ! { "dampr26", 1882, {0, {0}}, 0, 0 }, ! { "dampr27", 1883, {0, {0}}, 0, 0 }, ! { "dampr28", 1884, {0, {0}}, 0, 0 }, ! { "dampr29", 1885, {0, {0}}, 0, 0 }, ! { "dampr30", 1886, {0, {0}}, 0, 0 }, ! { "dampr31", 1887, {0, {0}}, 0, 0 }, ! { "dampr32", 1888, {0, {0}}, 0, 0 }, ! { "dampr33", 1889, {0, {0}}, 0, 0 }, ! { "dampr34", 1890, {0, {0}}, 0, 0 }, ! { "dampr35", 1891, {0, {0}}, 0, 0 }, ! { "dampr36", 1892, {0, {0}}, 0, 0 }, ! { "dampr37", 1893, {0, {0}}, 0, 0 }, ! { "dampr38", 1894, {0, {0}}, 0, 0 }, ! { "dampr39", 1895, {0, {0}}, 0, 0 }, ! { "dampr40", 1896, {0, {0}}, 0, 0 }, ! { "dampr41", 1897, {0, {0}}, 0, 0 }, ! { "dampr42", 1898, {0, {0}}, 0, 0 }, ! { "dampr43", 1899, {0, {0}}, 0, 0 }, ! { "dampr44", 1900, {0, {0}}, 0, 0 }, ! { "dampr45", 1901, {0, {0}}, 0, 0 }, ! { "dampr46", 1902, {0, {0}}, 0, 0 }, ! { "dampr47", 1903, {0, {0}}, 0, 0 }, ! { "dampr48", 1904, {0, {0}}, 0, 0 }, ! { "dampr49", 1905, {0, {0}}, 0, 0 }, ! { "dampr50", 1906, {0, {0}}, 0, 0 }, ! { "dampr51", 1907, {0, {0}}, 0, 0 }, ! { "dampr52", 1908, {0, {0}}, 0, 0 }, ! { "dampr53", 1909, {0, {0}}, 0, 0 }, ! { "dampr54", 1910, {0, {0}}, 0, 0 }, ! { "dampr55", 1911, {0, {0}}, 0, 0 }, ! { "dampr56", 1912, {0, {0}}, 0, 0 }, ! { "dampr57", 1913, {0, {0}}, 0, 0 }, ! { "dampr58", 1914, {0, {0}}, 0, 0 }, ! { "dampr59", 1915, {0, {0}}, 0, 0 }, ! { "dampr60", 1916, {0, {0}}, 0, 0 }, ! { "dampr61", 1917, {0, {0}}, 0, 0 }, ! { "dampr62", 1918, {0, {0}}, 0, 0 }, ! { "dampr63", 1919, {0, {0}}, 0, 0 }, ! { "amcr", 1920, {0, {0}}, 0, 0 }, ! { "stbar", 1921, {0, {0}}, 0, 0 }, ! { "mmcr", 1922, {0, {0}}, 0, 0 }, ! { "iamvr1", 1925, {0, {0}}, 0, 0 }, ! { "damvr1", 1927, {0, {0}}, 0, 0 }, ! { "cxnr", 1936, {0, {0}}, 0, 0 }, ! { "ttbr", 1937, {0, {0}}, 0, 0 }, ! { "tplr", 1938, {0, {0}}, 0, 0 }, ! { "tppr", 1939, {0, {0}}, 0, 0 }, ! { "tpxr", 1940, {0, {0}}, 0, 0 }, ! { "timerh", 1952, {0, {0}}, 0, 0 }, ! { "timerl", 1953, {0, {0}}, 0, 0 }, ! { "timerd", 1954, {0, {0}}, 0, 0 }, ! { "dcr", 2048, {0, {0}}, 0, 0 }, ! { "brr", 2049, {0, {0}}, 0, 0 }, ! { "nmar", 2050, {0, {0}}, 0, 0 }, ! { "btbr", 2051, {0, {0}}, 0, 0 }, ! { "ibar0", 2052, {0, {0}}, 0, 0 }, ! { "ibar1", 2053, {0, {0}}, 0, 0 }, ! { "ibar2", 2054, {0, {0}}, 0, 0 }, ! { "ibar3", 2055, {0, {0}}, 0, 0 }, ! { "dbar0", 2056, {0, {0}}, 0, 0 }, ! { "dbar1", 2057, {0, {0}}, 0, 0 }, ! { "dbar2", 2058, {0, {0}}, 0, 0 }, ! { "dbar3", 2059, {0, {0}}, 0, 0 }, ! { "dbdr00", 2060, {0, {0}}, 0, 0 }, ! { "dbdr01", 2061, {0, {0}}, 0, 0 }, ! { "dbdr02", 2062, {0, {0}}, 0, 0 }, ! { "dbdr03", 2063, {0, {0}}, 0, 0 }, ! { "dbdr10", 2064, {0, {0}}, 0, 0 }, ! { "dbdr11", 2065, {0, {0}}, 0, 0 }, ! { "dbdr12", 2066, {0, {0}}, 0, 0 }, ! { "dbdr13", 2067, {0, {0}}, 0, 0 }, ! { "dbdr20", 2068, {0, {0}}, 0, 0 }, ! { "dbdr21", 2069, {0, {0}}, 0, 0 }, ! { "dbdr22", 2070, {0, {0}}, 0, 0 }, ! { "dbdr23", 2071, {0, {0}}, 0, 0 }, ! { "dbdr30", 2072, {0, {0}}, 0, 0 }, ! { "dbdr31", 2073, {0, {0}}, 0, 0 }, ! { "dbdr32", 2074, {0, {0}}, 0, 0 }, ! { "dbdr33", 2075, {0, {0}}, 0, 0 }, ! { "dbmr00", 2076, {0, {0}}, 0, 0 }, ! { "dbmr01", 2077, {0, {0}}, 0, 0 }, ! { "dbmr02", 2078, {0, {0}}, 0, 0 }, ! { "dbmr03", 2079, {0, {0}}, 0, 0 }, ! { "dbmr10", 2080, {0, {0}}, 0, 0 }, ! { "dbmr11", 2081, {0, {0}}, 0, 0 }, ! { "dbmr12", 2082, {0, {0}}, 0, 0 }, ! { "dbmr13", 2083, {0, {0}}, 0, 0 }, ! { "dbmr20", 2084, {0, {0}}, 0, 0 }, ! { "dbmr21", 2085, {0, {0}}, 0, 0 }, ! { "dbmr22", 2086, {0, {0}}, 0, 0 }, ! { "dbmr23", 2087, {0, {0}}, 0, 0 }, ! { "dbmr30", 2088, {0, {0}}, 0, 0 }, ! { "dbmr31", 2089, {0, {0}}, 0, 0 }, ! { "dbmr32", 2090, {0, {0}}, 0, 0 }, ! { "dbmr33", 2091, {0, {0}}, 0, 0 }, ! { "cpcfr", 2092, {0, {0}}, 0, 0 }, ! { "cpcr", 2093, {0, {0}}, 0, 0 }, ! { "cpsr", 2094, {0, {0}}, 0, 0 }, ! { "cpesr0", 2096, {0, {0}}, 0, 0 }, ! { "cpesr1", 2097, {0, {0}}, 0, 0 }, ! { "cpemr0", 2098, {0, {0}}, 0, 0 }, ! { "cpemr1", 2099, {0, {0}}, 0, 0 }, ! { "ihsr8", 3848, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_spr_names = --- 523,1550 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_spr_names_entries[] = { ! { "psr", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "pcsr", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "bpcsr", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "tbr", 3, {0, {{{0, 0}}}}, 0, 0 }, ! { "bpsr", 4, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr0", 16, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr1", 17, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr2", 18, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr3", 19, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr4", 20, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr5", 21, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr6", 22, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr7", 23, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr8", 24, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr9", 25, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr10", 26, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr11", 27, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr12", 28, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr13", 29, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr14", 30, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr15", 31, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr16", 32, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr17", 33, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr18", 34, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr19", 35, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr20", 36, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr21", 37, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr22", 38, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr23", 39, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr24", 40, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr25", 41, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr26", 42, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr27", 43, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr28", 44, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr29", 45, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr30", 46, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr31", 47, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr32", 48, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr33", 49, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr34", 50, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr35", 51, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr36", 52, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr37", 53, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr38", 54, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr39", 55, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr40", 56, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr41", 57, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr42", 58, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr43", 59, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr44", 60, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr45", 61, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr46", 62, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr47", 63, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr48", 64, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr49", 65, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr50", 66, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr51", 67, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr52", 68, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr53", 69, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr54", 70, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr55", 71, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr56", 72, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr57", 73, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr58", 74, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr59", 75, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr60", 76, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr61", 77, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr62", 78, {0, {{{0, 0}}}}, 0, 0 }, ! { "hsr63", 79, {0, {{{0, 0}}}}, 0, 0 }, ! { "ccr", 256, {0, {{{0, 0}}}}, 0, 0 }, ! { "cccr", 263, {0, {{{0, 0}}}}, 0, 0 }, ! { "lr", 272, {0, {{{0, 0}}}}, 0, 0 }, ! { "lcr", 273, {0, {{{0, 0}}}}, 0, 0 }, ! { "iacc0h", 280, {0, {{{0, 0}}}}, 0, 0 }, ! { "iacc0l", 281, {0, {{{0, 0}}}}, 0, 0 }, ! { "isr", 288, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear0", 352, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear1", 353, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear2", 354, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear3", 355, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear4", 356, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear5", 357, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear6", 358, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear7", 359, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear8", 360, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear9", 361, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear10", 362, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear11", 363, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear12", 364, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear13", 365, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear14", 366, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear15", 367, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear16", 368, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear17", 369, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear18", 370, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear19", 371, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear20", 372, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear21", 373, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear22", 374, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear23", 375, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear24", 376, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear25", 377, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear26", 378, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear27", 379, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear28", 380, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear29", 381, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear30", 382, {0, {{{0, 0}}}}, 0, 0 }, ! { "neear31", 383, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr0", 384, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr1", 385, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr2", 386, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr3", 387, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr4", 388, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr5", 389, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr6", 390, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr7", 391, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr8", 392, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr9", 393, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr10", 394, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr11", 395, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr12", 396, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr13", 397, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr14", 398, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr15", 399, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr16", 400, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr17", 401, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr18", 402, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr19", 403, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr20", 404, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr21", 405, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr22", 406, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr23", 407, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr24", 408, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr25", 409, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr26", 410, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr27", 411, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr28", 412, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr29", 413, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr30", 414, {0, {{{0, 0}}}}, 0, 0 }, ! { "nesr31", 415, {0, {{{0, 0}}}}, 0, 0 }, ! { "necr", 416, {0, {{{0, 0}}}}, 0, 0 }, ! { "gner0", 432, {0, {{{0, 0}}}}, 0, 0 }, ! { "gner1", 433, {0, {{{0, 0}}}}, 0, 0 }, ! { "fner0", 434, {0, {{{0, 0}}}}, 0, 0 }, ! { "fner1", 435, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr0", 512, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr1", 513, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr2", 514, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr3", 515, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr4", 516, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr5", 517, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr6", 518, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr7", 519, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr8", 520, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr9", 521, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr10", 522, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr11", 523, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr12", 524, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr13", 525, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr14", 526, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr15", 527, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr16", 528, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr17", 529, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr18", 530, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr19", 531, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr20", 532, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr21", 533, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr22", 534, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr23", 535, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr24", 536, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr25", 537, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr26", 538, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr27", 539, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr28", 540, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr29", 541, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr30", 542, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr31", 543, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr32", 544, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr33", 545, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr34", 546, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr35", 547, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr36", 548, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr37", 549, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr38", 550, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr39", 551, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr40", 552, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr41", 553, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr42", 554, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr43", 555, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr44", 556, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr45", 557, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr46", 558, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr47", 559, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr48", 560, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr49", 561, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr50", 562, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr51", 563, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr52", 564, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr53", 565, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr54", 566, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr55", 567, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr56", 568, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr57", 569, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr58", 570, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr59", 571, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr60", 572, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr61", 573, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr62", 574, {0, {{{0, 0}}}}, 0, 0 }, ! { "epcr63", 575, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr0", 576, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr1", 577, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr2", 578, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr3", 579, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr4", 580, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr5", 581, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr6", 582, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr7", 583, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr8", 584, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr9", 585, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr10", 586, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr11", 587, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr12", 588, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr13", 589, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr14", 590, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr15", 591, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr16", 592, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr17", 593, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr18", 594, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr19", 595, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr20", 596, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr21", 597, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr22", 598, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr23", 599, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr24", 600, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr25", 601, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr26", 602, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr27", 603, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr28", 604, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr29", 605, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr30", 606, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr31", 607, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr32", 608, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr33", 609, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr34", 610, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr35", 611, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr36", 612, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr37", 613, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr38", 614, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr39", 615, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr40", 616, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr41", 617, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr42", 618, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr43", 619, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr44", 620, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr45", 621, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr46", 622, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr47", 623, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr48", 624, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr49", 625, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr50", 626, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr51", 627, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr52", 628, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr53", 629, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr54", 630, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr55", 631, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr56", 632, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr57", 633, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr58", 634, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr59", 635, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr60", 636, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr61", 637, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr62", 638, {0, {{{0, 0}}}}, 0, 0 }, ! { "esr63", 639, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir0", 640, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir1", 641, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir2", 642, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir3", 643, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir4", 644, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir5", 645, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir6", 646, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir7", 647, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir8", 648, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir9", 649, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir10", 650, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir11", 651, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir12", 652, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir13", 653, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir14", 654, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir15", 655, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir16", 656, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir17", 657, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir18", 658, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir19", 659, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir20", 660, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir21", 661, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir22", 662, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir23", 663, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir24", 664, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir25", 665, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir26", 666, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir27", 667, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir28", 668, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir29", 669, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir30", 670, {0, {{{0, 0}}}}, 0, 0 }, ! { "eir31", 671, {0, {{{0, 0}}}}, 0, 0 }, ! { "esfr0", 672, {0, {{{0, 0}}}}, 0, 0 }, ! { "esfr1", 673, {0, {{{0, 0}}}}, 0, 0 }, ! { "sr0", 768, {0, {{{0, 0}}}}, 0, 0 }, ! { "sr1", 769, {0, {{{0, 0}}}}, 0, 0 }, ! { "sr2", 770, {0, {{{0, 0}}}}, 0, 0 }, ! { "sr3", 771, {0, {{{0, 0}}}}, 0, 0 }, ! { "scr0", 832, {0, {{{0, 0}}}}, 0, 0 }, ! { "scr1", 833, {0, {{{0, 0}}}}, 0, 0 }, ! { "scr2", 834, {0, {{{0, 0}}}}, 0, 0 }, ! { "scr3", 835, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr0", 1024, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr1", 1025, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr2", 1026, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr3", 1027, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr4", 1028, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr5", 1029, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr6", 1030, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr7", 1031, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr8", 1032, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr9", 1033, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr10", 1034, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr11", 1035, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr12", 1036, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr13", 1037, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr14", 1038, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr15", 1039, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr16", 1040, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr17", 1041, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr18", 1042, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr19", 1043, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr20", 1044, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr21", 1045, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr22", 1046, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr23", 1047, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr24", 1048, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr25", 1049, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr26", 1050, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr27", 1051, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr28", 1052, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr29", 1053, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr30", 1054, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr31", 1055, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr32", 1056, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr33", 1057, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr34", 1058, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr35", 1059, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr36", 1060, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr37", 1061, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr38", 1062, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr39", 1063, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr40", 1064, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr41", 1065, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr42", 1066, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr43", 1067, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr44", 1068, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr45", 1069, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr46", 1070, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr47", 1071, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr48", 1072, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr49", 1073, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr50", 1074, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr51", 1075, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr52", 1076, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr53", 1077, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr54", 1078, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr55", 1079, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr56", 1080, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr57", 1081, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr58", 1082, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr59", 1083, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr60", 1084, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr61", 1085, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr62", 1086, {0, {{{0, 0}}}}, 0, 0 }, ! { "fsr63", 1087, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop0", 1088, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop1", 1090, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop2", 1092, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop3", 1094, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop4", 1096, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop5", 1098, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop6", 1100, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop7", 1102, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop8", 1104, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop9", 1106, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop10", 1108, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop11", 1110, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop12", 1112, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop13", 1114, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop14", 1116, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop15", 1118, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop16", 1120, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop17", 1122, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop18", 1124, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop19", 1126, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop20", 1128, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop21", 1130, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop22", 1132, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop23", 1134, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop24", 1136, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop25", 1138, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop26", 1140, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop27", 1142, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop28", 1144, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop29", 1146, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop30", 1148, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqop31", 1150, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst0", 1089, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst1", 1091, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst2", 1093, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst3", 1095, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst4", 1097, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst5", 1099, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst6", 1101, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst7", 1103, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst8", 1105, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst9", 1107, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst10", 1109, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst11", 1111, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst12", 1113, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst13", 1115, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst14", 1117, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst15", 1119, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst16", 1121, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst17", 1123, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst18", 1125, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst19", 1127, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst20", 1129, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst21", 1131, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst22", 1133, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst23", 1135, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst24", 1137, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst25", 1139, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst26", 1141, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst27", 1143, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst28", 1145, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst29", 1147, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst30", 1149, {0, {{{0, 0}}}}, 0, 0 }, ! { "fqst31", 1151, {0, {{{0, 0}}}}, 0, 0 }, ! { "mcilr0", 1272, {0, {{{0, 0}}}}, 0, 0 }, ! { "mcilr1", 1273, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr0", 1280, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr1", 1281, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr2", 1282, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr3", 1283, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr4", 1284, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr5", 1285, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr6", 1286, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr7", 1287, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr8", 1288, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr9", 1289, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr10", 1290, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr11", 1291, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr12", 1292, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr13", 1293, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr14", 1294, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr15", 1295, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr16", 1296, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr17", 1297, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr18", 1298, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr19", 1299, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr20", 1300, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr21", 1301, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr22", 1302, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr23", 1303, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr24", 1304, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr25", 1305, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr26", 1306, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr27", 1307, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr28", 1308, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr29", 1309, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr30", 1310, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr31", 1311, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr32", 1312, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr33", 1313, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr34", 1314, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr35", 1315, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr36", 1316, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr37", 1317, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr38", 1318, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr39", 1319, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr40", 1320, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr41", 1321, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr42", 1322, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr43", 1323, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr44", 1324, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr45", 1325, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr46", 1326, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr47", 1327, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr48", 1328, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr49", 1329, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr50", 1330, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr51", 1331, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr52", 1332, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr53", 1333, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr54", 1334, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr55", 1335, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr56", 1336, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr57", 1337, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr58", 1338, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr59", 1339, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr60", 1340, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr61", 1341, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr62", 1342, {0, {{{0, 0}}}}, 0, 0 }, ! { "msr63", 1343, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop0", 1344, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop1", 1346, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop2", 1348, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop3", 1350, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop4", 1352, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop5", 1354, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop6", 1356, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop7", 1358, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop8", 1360, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop9", 1362, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop10", 1364, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop11", 1366, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop12", 1368, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop13", 1370, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop14", 1372, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop15", 1374, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop16", 1376, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop17", 1378, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop18", 1380, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop19", 1382, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop20", 1384, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop21", 1386, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop22", 1388, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop23", 1390, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop24", 1392, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop25", 1394, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop26", 1396, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop27", 1398, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop28", 1400, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop29", 1402, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop30", 1404, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqop31", 1406, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst0", 1345, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst1", 1347, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst2", 1349, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst3", 1351, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst4", 1353, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst5", 1355, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst6", 1357, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst7", 1359, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst8", 1361, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst9", 1363, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst10", 1365, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst11", 1367, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst12", 1369, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst13", 1371, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst14", 1373, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst15", 1375, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst16", 1377, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst17", 1379, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst18", 1381, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst19", 1383, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst20", 1385, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst21", 1387, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst22", 1389, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst23", 1391, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst24", 1393, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst25", 1395, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst26", 1397, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst27", 1399, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst28", 1401, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst29", 1403, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst30", 1405, {0, {{{0, 0}}}}, 0, 0 }, ! { "mqst31", 1407, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear0", 1536, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear1", 1537, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear2", 1538, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear3", 1539, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear4", 1540, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear5", 1541, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear6", 1542, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear7", 1543, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear8", 1544, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear9", 1545, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear10", 1546, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear11", 1547, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear12", 1548, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear13", 1549, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear14", 1550, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear15", 1551, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear16", 1552, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear17", 1553, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear18", 1554, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear19", 1555, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear20", 1556, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear21", 1557, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear22", 1558, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear23", 1559, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear24", 1560, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear25", 1561, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear26", 1562, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear27", 1563, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear28", 1564, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear29", 1565, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear30", 1566, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear31", 1567, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear32", 1568, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear33", 1569, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear34", 1570, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear35", 1571, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear36", 1572, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear37", 1573, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear38", 1574, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear39", 1575, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear40", 1576, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear41", 1577, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear42", 1578, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear43", 1579, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear44", 1580, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear45", 1581, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear46", 1582, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear47", 1583, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear48", 1584, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear49", 1585, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear50", 1586, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear51", 1587, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear52", 1588, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear53", 1589, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear54", 1590, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear55", 1591, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear56", 1592, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear57", 1593, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear58", 1594, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear59", 1595, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear60", 1596, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear61", 1597, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear62", 1598, {0, {{{0, 0}}}}, 0, 0 }, ! { "ear63", 1599, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr0", 1600, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr1", 1601, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr2", 1602, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr3", 1603, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr4", 1604, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr5", 1605, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr6", 1606, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr7", 1607, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr8", 1608, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr9", 1609, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr10", 1610, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr11", 1611, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr12", 1612, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr13", 1613, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr14", 1614, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr15", 1615, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr16", 1616, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr17", 1617, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr18", 1618, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr19", 1619, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr20", 1620, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr21", 1621, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr22", 1622, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr23", 1623, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr24", 1624, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr25", 1625, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr26", 1626, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr27", 1627, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr28", 1628, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr29", 1629, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr30", 1630, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr31", 1631, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr32", 1632, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr33", 1636, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr34", 1634, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr35", 1635, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr36", 1636, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr37", 1637, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr38", 1638, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr39", 1639, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr40", 1640, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr41", 1641, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr42", 1642, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr43", 1643, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr44", 1644, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr45", 1645, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr46", 1646, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr47", 1647, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr48", 1648, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr49", 1649, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr50", 1650, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr51", 1651, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr52", 1652, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr53", 1653, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr54", 1654, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr55", 1655, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr56", 1656, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr57", 1657, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr58", 1658, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr59", 1659, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr60", 1660, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr61", 1661, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr62", 1662, {0, {{{0, 0}}}}, 0, 0 }, ! { "edr63", 1663, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr0", 1664, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr1", 1665, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr2", 1666, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr3", 1667, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr4", 1668, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr5", 1669, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr6", 1670, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr7", 1671, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr8", 1672, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr9", 1673, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr10", 1674, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr11", 1675, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr12", 1676, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr13", 1677, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr14", 1678, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr15", 1679, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr16", 1680, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr17", 1681, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr18", 1682, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr19", 1683, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr20", 1684, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr21", 1685, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr22", 1686, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr23", 1687, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr24", 1688, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr25", 1689, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr26", 1690, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr27", 1691, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr28", 1692, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr29", 1693, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr30", 1694, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr31", 1695, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr32", 1696, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr33", 1697, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr34", 1698, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr35", 1699, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr36", 1700, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr37", 1701, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr38", 1702, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr39", 1703, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr40", 1704, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr41", 1705, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr42", 1706, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr43", 1707, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr44", 1708, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr45", 1709, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr46", 1710, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr47", 1711, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr48", 1712, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr49", 1713, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr50", 1714, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr51", 1715, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr52", 1716, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr53", 1717, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr54", 1718, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr55", 1719, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr56", 1720, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr57", 1721, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr58", 1722, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr59", 1723, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr60", 1724, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr61", 1725, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr62", 1726, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamlr63", 1727, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr0", 1728, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr1", 1729, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr2", 1730, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr3", 1731, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr4", 1732, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr5", 1733, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr6", 1734, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr7", 1735, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr8", 1736, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr9", 1737, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr10", 1738, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr11", 1739, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr12", 1740, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr13", 1741, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr14", 1742, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr15", 1743, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr16", 1744, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr17", 1745, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr18", 1746, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr19", 1747, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr20", 1748, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr21", 1749, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr22", 1750, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr23", 1751, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr24", 1752, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr25", 1753, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr26", 1754, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr27", 1755, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr28", 1756, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr29", 1757, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr30", 1758, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr31", 1759, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr32", 1760, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr33", 1761, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr34", 1762, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr35", 1763, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr36", 1764, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr37", 1765, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr38", 1766, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr39", 1767, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr40", 1768, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr41", 1769, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr42", 1770, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr43", 1771, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr44", 1772, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr45", 1773, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr46", 1774, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr47", 1775, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr48", 1776, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr49", 1777, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr50", 1778, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr51", 1779, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr52", 1780, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr53", 1781, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr54", 1782, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr55", 1783, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr56", 1784, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr57", 1785, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr58", 1786, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr59", 1787, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr60", 1788, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr61", 1789, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr62", 1790, {0, {{{0, 0}}}}, 0, 0 }, ! { "iampr63", 1791, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr0", 1792, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr1", 1793, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr2", 1794, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr3", 1795, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr4", 1796, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr5", 1797, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr6", 1798, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr7", 1799, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr8", 1800, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr9", 1801, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr10", 1802, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr11", 1803, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr12", 1804, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr13", 1805, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr14", 1806, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr15", 1807, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr16", 1808, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr17", 1809, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr18", 1810, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr19", 1811, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr20", 1812, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr21", 1813, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr22", 1814, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr23", 1815, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr24", 1816, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr25", 1817, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr26", 1818, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr27", 1819, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr28", 1820, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr29", 1821, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr30", 1822, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr31", 1823, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr32", 1824, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr33", 1825, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr34", 1826, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr35", 1827, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr36", 1828, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr37", 1829, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr38", 1830, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr39", 1831, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr40", 1832, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr41", 1833, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr42", 1834, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr43", 1835, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr44", 1836, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr45", 1837, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr46", 1838, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr47", 1839, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr48", 1840, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr49", 1841, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr50", 1842, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr51", 1843, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr52", 1844, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr53", 1845, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr54", 1846, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr55", 1847, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr56", 1848, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr57", 1849, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr58", 1850, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr59", 1851, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr60", 1852, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr61", 1853, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr62", 1854, {0, {{{0, 0}}}}, 0, 0 }, ! { "damlr63", 1855, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr0", 1856, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr1", 1857, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr2", 1858, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr3", 1859, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr4", 1860, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr5", 1861, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr6", 1862, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr7", 1863, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr8", 1864, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr9", 1865, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr10", 1866, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr11", 1867, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr12", 1868, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr13", 1869, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr14", 1870, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr15", 1871, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr16", 1872, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr17", 1873, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr18", 1874, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr19", 1875, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr20", 1876, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr21", 1877, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr22", 1878, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr23", 1879, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr24", 1880, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr25", 1881, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr26", 1882, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr27", 1883, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr28", 1884, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr29", 1885, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr30", 1886, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr31", 1887, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr32", 1888, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr33", 1889, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr34", 1890, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr35", 1891, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr36", 1892, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr37", 1893, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr38", 1894, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr39", 1895, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr40", 1896, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr41", 1897, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr42", 1898, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr43", 1899, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr44", 1900, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr45", 1901, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr46", 1902, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr47", 1903, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr48", 1904, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr49", 1905, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr50", 1906, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr51", 1907, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr52", 1908, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr53", 1909, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr54", 1910, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr55", 1911, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr56", 1912, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr57", 1913, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr58", 1914, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr59", 1915, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr60", 1916, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr61", 1917, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr62", 1918, {0, {{{0, 0}}}}, 0, 0 }, ! { "dampr63", 1919, {0, {{{0, 0}}}}, 0, 0 }, ! { "amcr", 1920, {0, {{{0, 0}}}}, 0, 0 }, ! { "stbar", 1921, {0, {{{0, 0}}}}, 0, 0 }, ! { "mmcr", 1922, {0, {{{0, 0}}}}, 0, 0 }, ! { "iamvr1", 1925, {0, {{{0, 0}}}}, 0, 0 }, ! { "damvr1", 1927, {0, {{{0, 0}}}}, 0, 0 }, ! { "cxnr", 1936, {0, {{{0, 0}}}}, 0, 0 }, ! { "ttbr", 1937, {0, {{{0, 0}}}}, 0, 0 }, ! { "tplr", 1938, {0, {{{0, 0}}}}, 0, 0 }, ! { "tppr", 1939, {0, {{{0, 0}}}}, 0, 0 }, ! { "tpxr", 1940, {0, {{{0, 0}}}}, 0, 0 }, ! { "timerh", 1952, {0, {{{0, 0}}}}, 0, 0 }, ! { "timerl", 1953, {0, {{{0, 0}}}}, 0, 0 }, ! { "timerd", 1954, {0, {{{0, 0}}}}, 0, 0 }, ! { "dcr", 2048, {0, {{{0, 0}}}}, 0, 0 }, ! { "brr", 2049, {0, {{{0, 0}}}}, 0, 0 }, ! { "nmar", 2050, {0, {{{0, 0}}}}, 0, 0 }, ! { "btbr", 2051, {0, {{{0, 0}}}}, 0, 0 }, ! { "ibar0", 2052, {0, {{{0, 0}}}}, 0, 0 }, ! { "ibar1", 2053, {0, {{{0, 0}}}}, 0, 0 }, ! { "ibar2", 2054, {0, {{{0, 0}}}}, 0, 0 }, ! { "ibar3", 2055, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbar0", 2056, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbar1", 2057, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbar2", 2058, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbar3", 2059, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr00", 2060, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr01", 2061, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr02", 2062, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr03", 2063, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr10", 2064, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr11", 2065, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr12", 2066, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr13", 2067, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr20", 2068, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr21", 2069, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr22", 2070, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr23", 2071, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr30", 2072, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr31", 2073, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr32", 2074, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbdr33", 2075, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr00", 2076, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr01", 2077, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr02", 2078, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr03", 2079, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr10", 2080, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr11", 2081, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr12", 2082, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr13", 2083, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr20", 2084, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr21", 2085, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr22", 2086, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr23", 2087, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr30", 2088, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr31", 2089, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr32", 2090, {0, {{{0, 0}}}}, 0, 0 }, ! { "dbmr33", 2091, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpcfr", 2092, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpcr", 2093, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpsr", 2094, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpesr0", 2096, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpesr1", 2097, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpemr0", 2098, {0, {{{0, 0}}}}, 0, 0 }, ! { "cpemr1", 2099, {0, {{{0, 0}}}}, 0, 0 }, ! { "ihsr8", 3848, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_spr_names = *************** CGEN_KEYWORD frv_cgen_opval_spr_names = *** 1556,1625 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_accg_names_entries[] = { ! { "accg0", 0, {0, {0}}, 0, 0 }, ! { "accg1", 1, {0, {0}}, 0, 0 }, ! { "accg2", 2, {0, {0}}, 0, 0 }, ! { "accg3", 3, {0, {0}}, 0, 0 }, ! { "accg4", 4, {0, {0}}, 0, 0 }, ! { "accg5", 5, {0, {0}}, 0, 0 }, ! { "accg6", 6, {0, {0}}, 0, 0 }, ! { "accg7", 7, {0, {0}}, 0, 0 }, ! { "accg8", 8, {0, {0}}, 0, 0 }, ! { "accg9", 9, {0, {0}}, 0, 0 }, ! { "accg10", 10, {0, {0}}, 0, 0 }, ! { "accg11", 11, {0, {0}}, 0, 0 }, ! { "accg12", 12, {0, {0}}, 0, 0 }, ! { "accg13", 13, {0, {0}}, 0, 0 }, ! { "accg14", 14, {0, {0}}, 0, 0 }, ! { "accg15", 15, {0, {0}}, 0, 0 }, ! { "accg16", 16, {0, {0}}, 0, 0 }, ! { "accg17", 17, {0, {0}}, 0, 0 }, ! { "accg18", 18, {0, {0}}, 0, 0 }, ! { "accg19", 19, {0, {0}}, 0, 0 }, ! { "accg20", 20, {0, {0}}, 0, 0 }, ! { "accg21", 21, {0, {0}}, 0, 0 }, ! { "accg22", 22, {0, {0}}, 0, 0 }, ! { "accg23", 23, {0, {0}}, 0, 0 }, ! { "accg24", 24, {0, {0}}, 0, 0 }, ! { "accg25", 25, {0, {0}}, 0, 0 }, ! { "accg26", 26, {0, {0}}, 0, 0 }, ! { "accg27", 27, {0, {0}}, 0, 0 }, ! { "accg28", 28, {0, {0}}, 0, 0 }, ! { "accg29", 29, {0, {0}}, 0, 0 }, ! { "accg30", 30, {0, {0}}, 0, 0 }, ! { "accg31", 31, {0, {0}}, 0, 0 }, ! { "accg32", 32, {0, {0}}, 0, 0 }, ! { "accg33", 33, {0, {0}}, 0, 0 }, ! { "accg34", 34, {0, {0}}, 0, 0 }, ! { "accg35", 35, {0, {0}}, 0, 0 }, ! { "accg36", 36, {0, {0}}, 0, 0 }, ! { "accg37", 37, {0, {0}}, 0, 0 }, ! { "accg38", 38, {0, {0}}, 0, 0 }, ! { "accg39", 39, {0, {0}}, 0, 0 }, ! { "accg40", 40, {0, {0}}, 0, 0 }, ! { "accg41", 41, {0, {0}}, 0, 0 }, ! { "accg42", 42, {0, {0}}, 0, 0 }, ! { "accg43", 43, {0, {0}}, 0, 0 }, ! { "accg44", 44, {0, {0}}, 0, 0 }, ! { "accg45", 45, {0, {0}}, 0, 0 }, ! { "accg46", 46, {0, {0}}, 0, 0 }, ! { "accg47", 47, {0, {0}}, 0, 0 }, ! { "accg48", 48, {0, {0}}, 0, 0 }, ! { "accg49", 49, {0, {0}}, 0, 0 }, ! { "accg50", 50, {0, {0}}, 0, 0 }, ! { "accg51", 51, {0, {0}}, 0, 0 }, ! { "accg52", 52, {0, {0}}, 0, 0 }, ! { "accg53", 53, {0, {0}}, 0, 0 }, ! { "accg54", 54, {0, {0}}, 0, 0 }, ! { "accg55", 55, {0, {0}}, 0, 0 }, ! { "accg56", 56, {0, {0}}, 0, 0 }, ! { "accg57", 57, {0, {0}}, 0, 0 }, ! { "accg58", 58, {0, {0}}, 0, 0 }, ! { "accg59", 59, {0, {0}}, 0, 0 }, ! { "accg60", 60, {0, {0}}, 0, 0 }, ! { "accg61", 61, {0, {0}}, 0, 0 }, ! { "accg62", 62, {0, {0}}, 0, 0 }, ! { "accg63", 63, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_accg_names = --- 1556,1625 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_accg_names_entries[] = { ! { "accg0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg3", 3, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg4", 4, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg5", 5, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg6", 6, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg7", 7, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg8", 8, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg9", 9, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg10", 10, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg11", 11, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg12", 12, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg13", 13, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg14", 14, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg15", 15, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg16", 16, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg17", 17, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg18", 18, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg19", 19, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg20", 20, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg21", 21, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg22", 22, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg23", 23, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg24", 24, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg25", 25, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg26", 26, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg27", 27, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg28", 28, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg29", 29, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg30", 30, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg31", 31, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg32", 32, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg33", 33, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg34", 34, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg35", 35, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg36", 36, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg37", 37, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg38", 38, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg39", 39, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg40", 40, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg41", 41, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg42", 42, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg43", 43, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg44", 44, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg45", 45, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg46", 46, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg47", 47, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg48", 48, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg49", 49, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg50", 50, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg51", 51, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg52", 52, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg53", 53, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg54", 54, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg55", 55, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg56", 56, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg57", 57, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg58", 58, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg59", 59, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg60", 60, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg61", 61, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg62", 62, {0, {{{0, 0}}}}, 0, 0 }, ! { "accg63", 63, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_accg_names = *************** CGEN_KEYWORD frv_cgen_opval_accg_names = *** 1631,1700 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_acc_names_entries[] = { ! { "acc0", 0, {0, {0}}, 0, 0 }, ! { "acc1", 1, {0, {0}}, 0, 0 }, ! { "acc2", 2, {0, {0}}, 0, 0 }, ! { "acc3", 3, {0, {0}}, 0, 0 }, ! { "acc4", 4, {0, {0}}, 0, 0 }, ! { "acc5", 5, {0, {0}}, 0, 0 }, ! { "acc6", 6, {0, {0}}, 0, 0 }, ! { "acc7", 7, {0, {0}}, 0, 0 }, ! { "acc8", 8, {0, {0}}, 0, 0 }, ! { "acc9", 9, {0, {0}}, 0, 0 }, ! { "acc10", 10, {0, {0}}, 0, 0 }, ! { "acc11", 11, {0, {0}}, 0, 0 }, ! { "acc12", 12, {0, {0}}, 0, 0 }, ! { "acc13", 13, {0, {0}}, 0, 0 }, ! { "acc14", 14, {0, {0}}, 0, 0 }, ! { "acc15", 15, {0, {0}}, 0, 0 }, ! { "acc16", 16, {0, {0}}, 0, 0 }, ! { "acc17", 17, {0, {0}}, 0, 0 }, ! { "acc18", 18, {0, {0}}, 0, 0 }, ! { "acc19", 19, {0, {0}}, 0, 0 }, ! { "acc20", 20, {0, {0}}, 0, 0 }, ! { "acc21", 21, {0, {0}}, 0, 0 }, ! { "acc22", 22, {0, {0}}, 0, 0 }, ! { "acc23", 23, {0, {0}}, 0, 0 }, ! { "acc24", 24, {0, {0}}, 0, 0 }, ! { "acc25", 25, {0, {0}}, 0, 0 }, ! { "acc26", 26, {0, {0}}, 0, 0 }, ! { "acc27", 27, {0, {0}}, 0, 0 }, ! { "acc28", 28, {0, {0}}, 0, 0 }, ! { "acc29", 29, {0, {0}}, 0, 0 }, ! { "acc30", 30, {0, {0}}, 0, 0 }, ! { "acc31", 31, {0, {0}}, 0, 0 }, ! { "acc32", 32, {0, {0}}, 0, 0 }, ! { "acc33", 33, {0, {0}}, 0, 0 }, ! { "acc34", 34, {0, {0}}, 0, 0 }, ! { "acc35", 35, {0, {0}}, 0, 0 }, ! { "acc36", 36, {0, {0}}, 0, 0 }, ! { "acc37", 37, {0, {0}}, 0, 0 }, ! { "acc38", 38, {0, {0}}, 0, 0 }, ! { "acc39", 39, {0, {0}}, 0, 0 }, ! { "acc40", 40, {0, {0}}, 0, 0 }, ! { "acc41", 41, {0, {0}}, 0, 0 }, ! { "acc42", 42, {0, {0}}, 0, 0 }, ! { "acc43", 43, {0, {0}}, 0, 0 }, ! { "acc44", 44, {0, {0}}, 0, 0 }, ! { "acc45", 45, {0, {0}}, 0, 0 }, ! { "acc46", 46, {0, {0}}, 0, 0 }, ! { "acc47", 47, {0, {0}}, 0, 0 }, ! { "acc48", 48, {0, {0}}, 0, 0 }, ! { "acc49", 49, {0, {0}}, 0, 0 }, ! { "acc50", 50, {0, {0}}, 0, 0 }, ! { "acc51", 51, {0, {0}}, 0, 0 }, ! { "acc52", 52, {0, {0}}, 0, 0 }, ! { "acc53", 53, {0, {0}}, 0, 0 }, ! { "acc54", 54, {0, {0}}, 0, 0 }, ! { "acc55", 55, {0, {0}}, 0, 0 }, ! { "acc56", 56, {0, {0}}, 0, 0 }, ! { "acc57", 57, {0, {0}}, 0, 0 }, ! { "acc58", 58, {0, {0}}, 0, 0 }, ! { "acc59", 59, {0, {0}}, 0, 0 }, ! { "acc60", 60, {0, {0}}, 0, 0 }, ! { "acc61", 61, {0, {0}}, 0, 0 }, ! { "acc62", 62, {0, {0}}, 0, 0 }, ! { "acc63", 63, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_acc_names = --- 1631,1700 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_acc_names_entries[] = { ! { "acc0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc3", 3, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc4", 4, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc5", 5, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc6", 6, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc7", 7, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc8", 8, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc9", 9, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc10", 10, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc11", 11, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc12", 12, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc13", 13, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc14", 14, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc15", 15, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc16", 16, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc17", 17, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc18", 18, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc19", 19, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc20", 20, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc21", 21, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc22", 22, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc23", 23, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc24", 24, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc25", 25, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc26", 26, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc27", 27, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc28", 28, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc29", 29, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc30", 30, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc31", 31, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc32", 32, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc33", 33, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc34", 34, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc35", 35, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc36", 36, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc37", 37, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc38", 38, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc39", 39, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc40", 40, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc41", 41, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc42", 42, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc43", 43, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc44", 44, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc45", 45, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc46", 46, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc47", 47, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc48", 48, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc49", 49, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc50", 50, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc51", 51, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc52", 52, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc53", 53, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc54", 54, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc55", 55, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc56", 56, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc57", 57, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc58", 58, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc59", 59, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc60", 60, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc61", 61, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc62", 62, {0, {{{0, 0}}}}, 0, 0 }, ! { "acc63", 63, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_acc_names = *************** CGEN_KEYWORD frv_cgen_opval_acc_names = *** 1706,1712 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_iacc0_names_entries[] = { ! { "iacc0", 0, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_iacc0_names = --- 1706,1712 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_iacc0_names_entries[] = { ! { "iacc0", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_iacc0_names = *************** CGEN_KEYWORD frv_cgen_opval_iacc0_names *** 1718,1727 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_iccr_names_entries[] = { ! { "icc0", 0, {0, {0}}, 0, 0 }, ! { "icc1", 1, {0, {0}}, 0, 0 }, ! { "icc2", 2, {0, {0}}, 0, 0 }, ! { "icc3", 3, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_iccr_names = --- 1718,1727 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_iccr_names_entries[] = { ! { "icc0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "icc1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "icc2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "icc3", 3, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_iccr_names = *************** CGEN_KEYWORD frv_cgen_opval_iccr_names = *** 1733,1742 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_fccr_names_entries[] = { ! { "fcc0", 0, {0, {0}}, 0, 0 }, ! { "fcc1", 1, {0, {0}}, 0, 0 }, ! { "fcc2", 2, {0, {0}}, 0, 0 }, ! { "fcc3", 3, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_fccr_names = --- 1733,1742 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_fccr_names_entries[] = { ! { "fcc0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "fcc1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "fcc2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "fcc3", 3, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_fccr_names = *************** CGEN_KEYWORD frv_cgen_opval_fccr_names = *** 1748,1761 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_cccr_names_entries[] = { ! { "cc0", 0, {0, {0}}, 0, 0 }, ! { "cc1", 1, {0, {0}}, 0, 0 }, ! { "cc2", 2, {0, {0}}, 0, 0 }, ! { "cc3", 3, {0, {0}}, 0, 0 }, ! { "cc4", 4, {0, {0}}, 0, 0 }, ! { "cc5", 5, {0, {0}}, 0, 0 }, ! { "cc6", 6, {0, {0}}, 0, 0 }, ! { "cc7", 7, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_cccr_names = --- 1748,1761 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_cccr_names_entries[] = { ! { "cc0", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "cc1", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "cc2", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "cc3", 3, {0, {{{0, 0}}}}, 0, 0 }, ! { "cc4", 4, {0, {{{0, 0}}}}, 0, 0 }, ! { "cc5", 5, {0, {{{0, 0}}}}, 0, 0 }, ! { "cc6", 6, {0, {{{0, 0}}}}, 0, 0 }, ! { "cc7", 7, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_cccr_names = *************** CGEN_KEYWORD frv_cgen_opval_cccr_names = *** 1767,1775 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_h_pack_entries[] = { ! { "", 1, {0, {0}}, 0, 0 }, ! { ".p", 0, {0, {0}}, 0, 0 }, ! { ".P", 0, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_h_pack = --- 1767,1775 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_h_pack_entries[] = { ! { "", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { ".p", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { ".P", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_h_pack = *************** CGEN_KEYWORD frv_cgen_opval_h_pack = *** 1781,1790 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_h_hint_taken_entries[] = { ! { "", 2, {0, {0}}, 0, 0 }, ! { "", 0, {0, {0}}, 0, 0 }, ! { "", 1, {0, {0}}, 0, 0 }, ! { "", 3, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_h_hint_taken = --- 1781,1790 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_h_hint_taken_entries[] = { ! { "", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "", 3, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_h_hint_taken = *************** CGEN_KEYWORD frv_cgen_opval_h_hint_taken *** 1796,1805 **** static CGEN_KEYWORD_ENTRY frv_cgen_opval_h_hint_not_taken_entries[] = { ! { "", 0, {0, {0}}, 0, 0 }, ! { "", 1, {0, {0}}, 0, 0 }, ! { "", 2, {0, {0}}, 0, 0 }, ! { "", 3, {0, {0}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_h_hint_not_taken = --- 1796,1805 ---- static CGEN_KEYWORD_ENTRY frv_cgen_opval_h_hint_not_taken_entries[] = { ! { "", 0, {0, {{{0, 0}}}}, 0, 0 }, ! { "", 1, {0, {{{0, 0}}}}, 0, 0 }, ! { "", 2, {0, {{{0, 0}}}}, 0, 0 }, ! { "", 3, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD frv_cgen_opval_h_hint_not_taken = *************** CGEN_KEYWORD frv_cgen_opval_h_hint_not_t *** 1820,1876 **** const CGEN_HW_ENTRY frv_cgen_hw_table[] = { ! { "h-memory", HW_H_MEMORY, CGEN_ASM_NONE, 0, { 0, { (1<isas; unsigned int machs = cd->machs; cd->int_insn_p = CGEN_INT_INSN_P; --- 6257,6263 ---- frv_cgen_rebuild_tables (CGEN_CPU_TABLE *cd) { int i; ! CGEN_BITSET *isas = cd->isas; unsigned int machs = cd->machs; cd->int_insn_p = CGEN_INT_INSN_P; *************** frv_cgen_rebuild_tables (CGEN_CPU_TABLE *** 6269,6275 **** cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */ cd->max_insn_bitsize = 0; for (i = 0; i < MAX_ISAS; ++i) ! if (((1 << i) & isas) != 0) { const CGEN_ISA *isa = & frv_cgen_isa_table[i]; --- 6269,6275 ---- cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */ cd->max_insn_bitsize = 0; for (i = 0; i < MAX_ISAS; ++i) ! if (cgen_bitset_contains (isas, i)) { const CGEN_ISA *isa = & frv_cgen_isa_table[i]; *************** frv_cgen_cpu_open (enum cgen_cpu_open_ar *** 6354,6360 **** { CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE)); static int init_p; ! unsigned int isas = 0; /* 0 = "unspecified" */ unsigned int machs = 0; /* 0 = "unspecified" */ enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN; va_list ap; --- 6354,6360 ---- { CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE)); static int init_p; ! CGEN_BITSET *isas = 0; /* 0 = "unspecified" */ unsigned int machs = 0; /* 0 = "unspecified" */ enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN; va_list ap; *************** frv_cgen_cpu_open (enum cgen_cpu_open_ar *** 6373,6379 **** switch (arg_type) { case CGEN_CPU_OPEN_ISAS : ! isas = va_arg (ap, unsigned int); break; case CGEN_CPU_OPEN_MACHS : machs = va_arg (ap, unsigned int); --- 6373,6379 ---- switch (arg_type) { case CGEN_CPU_OPEN_ISAS : ! isas = va_arg (ap, CGEN_BITSET *); break; case CGEN_CPU_OPEN_MACHS : machs = va_arg (ap, unsigned int); *************** frv_cgen_cpu_open (enum cgen_cpu_open_ar *** 6404,6412 **** machs = (1 << MAX_MACHS) - 1; /* Base mach is always selected. */ machs |= 1; - /* ISA unspecified means "all". */ - if (isas == 0) - isas = (1 << MAX_ISAS) - 1; if (endian == CGEN_ENDIAN_UNKNOWN) { /* ??? If target has only one, could have a default. */ --- 6404,6409 ---- *************** frv_cgen_cpu_open (enum cgen_cpu_open_ar *** 6414,6420 **** abort (); } ! cd->isas = isas; cd->machs = machs; cd->endian = endian; /* FIXME: for the sparc case we can determine insn-endianness statically. --- 6411,6417 ---- abort (); } ! cd->isas = cgen_bitset_copy (isas); cd->machs = machs; cd->endian = endian; /* FIXME: for the sparc case we can determine insn-endianness statically. Index: opcodes/frv-desc.h =================================================================== RCS file: /cvs/src/src/opcodes/frv-desc.h,v retrieving revision 1.13 diff -c -p -r1.13 frv-desc.h *** opcodes/frv-desc.h 7 May 2005 07:34:27 -0000 1.13 --- opcodes/frv-desc.h 19 Sep 2005 19:48:55 -0000 *************** with this program; if not, write to the *** 25,30 **** --- 25,32 ---- #ifndef FRV_CPU_H #define FRV_CPU_H + #include "opcode/cgen-bitset.h" + #define CGEN_ARCH frv /* Given symbol S, return frv_cgen_. */ *************** typedef enum cgen_ifld_attr { *** 617,622 **** --- 619,633 ---- /* Number of non-boolean elements in cgen_ifld_attr. */ #define CGEN_IFLD_NBOOL_ATTRS (CGEN_IFLD_END_NBOOLS - CGEN_IFLD_START_NBOOLS - 1) + /* cgen_ifld attribute accessor macros. */ + #define CGEN_ATTR_CGEN_IFLD_MACH_VALUE(attrs) ((attrs)->nonbool[CGEN_IFLD_MACH-CGEN_IFLD_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_IFLD_VIRTUAL_VALUE(attrs) (((attrs)->bool & (1 << CGEN_IFLD_VIRTUAL)) != 0) + #define CGEN_ATTR_CGEN_IFLD_PCREL_ADDR_VALUE(attrs) (((attrs)->bool & (1 << CGEN_IFLD_PCREL_ADDR)) != 0) + #define CGEN_ATTR_CGEN_IFLD_ABS_ADDR_VALUE(attrs) (((attrs)->bool & (1 << CGEN_IFLD_ABS_ADDR)) != 0) + #define CGEN_ATTR_CGEN_IFLD_RESERVED_VALUE(attrs) (((attrs)->bool & (1 << CGEN_IFLD_RESERVED)) != 0) + #define CGEN_ATTR_CGEN_IFLD_SIGN_OPT_VALUE(attrs) (((attrs)->bool & (1 << CGEN_IFLD_SIGN_OPT)) != 0) + #define CGEN_ATTR_CGEN_IFLD_SIGNED_VALUE(attrs) (((attrs)->bool & (1 << CGEN_IFLD_SIGNED)) != 0) + /* Enum declaration for frv ifield types. */ typedef enum ifield_type { FRV_F_NIL, FRV_F_ANYOF, FRV_F_PACK, FRV_F_OP *************** typedef enum cgen_hw_attr { *** 661,666 **** --- 672,684 ---- /* Number of non-boolean elements in cgen_hw_attr. */ #define CGEN_HW_NBOOL_ATTRS (CGEN_HW_END_NBOOLS - CGEN_HW_START_NBOOLS - 1) + /* cgen_hw attribute accessor macros. */ + #define CGEN_ATTR_CGEN_HW_MACH_VALUE(attrs) ((attrs)->nonbool[CGEN_HW_MACH-CGEN_HW_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_HW_VIRTUAL_VALUE(attrs) (((attrs)->bool & (1 << CGEN_HW_VIRTUAL)) != 0) + #define CGEN_ATTR_CGEN_HW_CACHE_ADDR_VALUE(attrs) (((attrs)->bool & (1 << CGEN_HW_CACHE_ADDR)) != 0) + #define CGEN_ATTR_CGEN_HW_PC_VALUE(attrs) (((attrs)->bool & (1 << CGEN_HW_PC)) != 0) + #define CGEN_ATTR_CGEN_HW_PROFILE_VALUE(attrs) (((attrs)->bool & (1 << CGEN_HW_PROFILE)) != 0) + /* Enum declaration for frv hardware types. */ typedef enum cgen_hw_type { HW_H_MEMORY, HW_H_SINT, HW_H_UINT, HW_H_ADDR *************** typedef enum cgen_operand_attr { *** 693,698 **** --- 711,728 ---- /* Number of non-boolean elements in cgen_operand_attr. */ #define CGEN_OPERAND_NBOOL_ATTRS (CGEN_OPERAND_END_NBOOLS - CGEN_OPERAND_START_NBOOLS - 1) + /* cgen_operand attribute accessor macros. */ + #define CGEN_ATTR_CGEN_OPERAND_MACH_VALUE(attrs) ((attrs)->nonbool[CGEN_OPERAND_MACH-CGEN_OPERAND_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_OPERAND_VIRTUAL_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_VIRTUAL)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_PCREL_ADDR_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_PCREL_ADDR)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_ABS_ADDR_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_ABS_ADDR)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_SIGN_OPT_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_SIGN_OPT)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_SIGNED_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_SIGNED)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_NEGATIVE_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_NEGATIVE)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_RELAX_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_RELAX)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_SEM_ONLY_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_SEM_ONLY)) != 0) + #define CGEN_ATTR_CGEN_OPERAND_HASH_PREFIX_VALUE(attrs) (((attrs)->bool & (1 << CGEN_OPERAND_HASH_PREFIX)) != 0) + /* Enum declaration for frv operand types. */ typedef enum cgen_operand_type { FRV_OPERAND_PC, FRV_OPERAND_PACK, FRV_OPERAND_GRI, FRV_OPERAND_GRJ *************** typedef enum cgen_insn_attr { *** 742,747 **** --- 772,801 ---- /* Number of non-boolean elements in cgen_insn_attr. */ #define CGEN_INSN_NBOOL_ATTRS (CGEN_INSN_END_NBOOLS - CGEN_INSN_START_NBOOLS - 1) + /* cgen_insn attribute accessor macros. */ + #define CGEN_ATTR_CGEN_INSN_MACH_VALUE(attrs) ((attrs)->nonbool[CGEN_INSN_MACH-CGEN_INSN_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_INSN_UNIT_VALUE(attrs) ((attrs)->nonbool[CGEN_INSN_UNIT-CGEN_INSN_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_INSN_FR400_MAJOR_VALUE(attrs) ((attrs)->nonbool[CGEN_INSN_FR400_MAJOR-CGEN_INSN_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_INSN_FR450_MAJOR_VALUE(attrs) ((attrs)->nonbool[CGEN_INSN_FR450_MAJOR-CGEN_INSN_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_INSN_FR500_MAJOR_VALUE(attrs) ((attrs)->nonbool[CGEN_INSN_FR500_MAJOR-CGEN_INSN_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_INSN_FR550_MAJOR_VALUE(attrs) ((attrs)->nonbool[CGEN_INSN_FR550_MAJOR-CGEN_INSN_START_NBOOLS-1].nonbitset) + #define CGEN_ATTR_CGEN_INSN_ALIAS_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_ALIAS)) != 0) + #define CGEN_ATTR_CGEN_INSN_VIRTUAL_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_VIRTUAL)) != 0) + #define CGEN_ATTR_CGEN_INSN_UNCOND_CTI_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_UNCOND_CTI)) != 0) + #define CGEN_ATTR_CGEN_INSN_COND_CTI_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_COND_CTI)) != 0) + #define CGEN_ATTR_CGEN_INSN_SKIP_CTI_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_SKIP_CTI)) != 0) + #define CGEN_ATTR_CGEN_INSN_DELAY_SLOT_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_DELAY_SLOT)) != 0) + #define CGEN_ATTR_CGEN_INSN_RELAXABLE_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_RELAXABLE)) != 0) + #define CGEN_ATTR_CGEN_INSN_RELAXED_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_RELAXED)) != 0) + #define CGEN_ATTR_CGEN_INSN_NO_DIS_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_NO_DIS)) != 0) + #define CGEN_ATTR_CGEN_INSN_PBB_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_PBB)) != 0) + #define CGEN_ATTR_CGEN_INSN_PRIVILEGED_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_PRIVILEGED)) != 0) + #define CGEN_ATTR_CGEN_INSN_NON_EXCEPTING_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_NON_EXCEPTING)) != 0) + #define CGEN_ATTR_CGEN_INSN_CONDITIONAL_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_CONDITIONAL)) != 0) + #define CGEN_ATTR_CGEN_INSN_FR_ACCESS_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_FR_ACCESS)) != 0) + #define CGEN_ATTR_CGEN_INSN_PRESERVE_OVF_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_PRESERVE_OVF)) != 0) + #define CGEN_ATTR_CGEN_INSN_AUDIO_VALUE(attrs) (((attrs)->bool & (1 << CGEN_INSN_AUDIO)) != 0) + /* cgen.h uses things we just defined. */ #include "opcode/cgen.h" Index: opcodes/frv-dis.c =================================================================== RCS file: /cvs/src/src/opcodes/frv-dis.c,v retrieving revision 1.12 diff -c -p -r1.12 frv-dis.c *** opcodes/frv-dis.c 1 Jul 2005 11:16:32 -0000 1.12 --- opcodes/frv-dis.c 19 Sep 2005 19:48:55 -0000 *************** default_print_insn (CGEN_CPU_DESC cd, bf *** 704,710 **** typedef struct cpu_desc_list { struct cpu_desc_list *next; ! int isa; int mach; int endian; CGEN_CPU_DESC cd; --- 704,710 ---- typedef struct cpu_desc_list { struct cpu_desc_list *next; ! CGEN_BITSET *isa; int mach; int endian; CGEN_CPU_DESC cd; *************** print_insn_frv (bfd_vma pc, disassemble_ *** 716,726 **** static cpu_desc_list *cd_list = 0; cpu_desc_list *cl = 0; static CGEN_CPU_DESC cd = 0; ! static int prev_isa; static int prev_mach; static int prev_endian; int length; ! int isa,mach; int endian = (info->endian == BFD_ENDIAN_BIG ? CGEN_ENDIAN_BIG : CGEN_ENDIAN_LITTLE); --- 716,727 ---- static cpu_desc_list *cd_list = 0; cpu_desc_list *cl = 0; static CGEN_CPU_DESC cd = 0; ! static CGEN_BITSET *prev_isa; static int prev_mach; static int prev_endian; int length; ! CGEN_BITSET *isa; ! int mach; int endian = (info->endian == BFD_ENDIAN_BIG ? CGEN_ENDIAN_BIG : CGEN_ENDIAN_LITTLE); *************** print_insn_frv (bfd_vma pc, disassemble_ *** 743,767 **** #endif #ifdef CGEN_COMPUTE_ISA ! isa = CGEN_COMPUTE_ISA (info); #else isa = info->insn_sets; #endif /* If we've switched cpu's, try to find a handle we've used before */ if (cd ! && (isa != prev_isa || mach != prev_mach || endian != prev_endian)) { cd = 0; for (cl = cd_list; cl; cl = cl->next) { ! if (cl->isa == isa && cl->mach == mach && cl->endian == endian) { cd = cl->cd; break; } } --- 744,777 ---- #endif #ifdef CGEN_COMPUTE_ISA ! { ! static CGEN_BITSET *permanent_isa; ! ! if (!permanent_isa) ! permanent_isa = cgen_bitset_create (MAX_ISAS); ! isa = permanent_isa; ! cgen_bitset_clear (isa); ! cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info)); ! } #else isa = info->insn_sets; #endif /* If we've switched cpu's, try to find a handle we've used before */ if (cd ! && (cgen_bitset_compare (isa, prev_isa) != 0 || mach != prev_mach || endian != prev_endian)) { cd = 0; for (cl = cd_list; cl; cl = cl->next) { ! if (cgen_bitset_compare (cl->isa, isa) == 0 && cl->mach == mach && cl->endian == endian) { cd = cl->cd; + prev_isa = cd->isas; break; } } *************** print_insn_frv (bfd_vma pc, disassemble_ *** 777,783 **** abort (); mach_name = arch_type->printable_name; ! prev_isa = isa; prev_mach = mach; prev_endian = endian; cd = frv_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa, --- 787,793 ---- abort (); mach_name = arch_type->printable_name; ! prev_isa = cgen_bitset_copy (isa); prev_mach = mach; prev_endian = endian; cd = frv_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa, *************** print_insn_frv (bfd_vma pc, disassemble_ *** 790,796 **** /* Save this away for future reference. */ cl = xmalloc (sizeof (struct cpu_desc_list)); cl->cd = cd; ! cl->isa = isa; cl->mach = mach; cl->endian = endian; cl->next = cd_list; --- 800,806 ---- /* Save this away for future reference. */ cl = xmalloc (sizeof (struct cpu_desc_list)); cl->cd = cd; ! cl->isa = prev_isa; cl->mach = mach; cl->endian = endian; cl->next = cd_list; Index: opcodes/frv-opc.c =================================================================== RCS file: /cvs/src/src/opcodes/frv-opc.c,v retrieving revision 1.18 diff -c -p -r1.18 frv-opc.c *** opcodes/frv-opc.c 1 Jul 2005 11:16:32 -0000 1.18 --- opcodes/frv-opc.c 19 Sep 2005 19:48:55 -0000 *************** with this program; if not, write to the *** 38,44 **** development tree. */ bfd_boolean ! frv_is_branch_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) { switch (mach) { --- 38,44 ---- development tree. */ bfd_boolean ! frv_is_branch_major (CGEN_ATTR_VALUE_ENUM_TYPE major, unsigned long mach) { switch (mach) { *************** frv_is_branch_major (CGEN_ATTR_VALUE_TYP *** 62,68 **** /* Returns TRUE if {MAJOR,MACH} supports floating point insns. */ bfd_boolean ! frv_is_float_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) { switch (mach) { --- 62,68 ---- /* Returns TRUE if {MAJOR,MACH} supports floating point insns. */ bfd_boolean ! frv_is_float_major (CGEN_ATTR_VALUE_ENUM_TYPE major, unsigned long mach) { switch (mach) { *************** frv_is_float_major (CGEN_ATTR_VALUE_TYPE *** 81,87 **** /* Returns TRUE if {MAJOR,MACH} supports media insns. */ bfd_boolean ! frv_is_media_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach) { switch (mach) { --- 81,87 ---- /* Returns TRUE if {MAJOR,MACH} supports media insns. */ bfd_boolean ! frv_is_media_major (CGEN_ATTR_VALUE_ENUM_TYPE major, unsigned long mach) { switch (mach) { *************** static VLIW_COMBO fr550_allowed_vliw[] = *** 225,231 **** /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_TYPE fr400_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 225,231 ---- /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_ENUM_TYPE fr400_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** static CGEN_ATTR_VALUE_TYPE fr400_unit_m *** 260,266 **** /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_TYPE fr450_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 260,266 ---- /* Some insns are assigned specialized implementation units which map to different actual implementation units on different machines. These tables perform that mapping. */ ! static CGEN_ATTR_VALUE_ENUM_TYPE fr450_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** static CGEN_ATTR_VALUE_TYPE fr450_unit_m *** 292,298 **** /* MCLRACC-1*/ UNIT_FM0 /* mclracc,A==1 insn only in FM0 unit. */ }; ! static CGEN_ATTR_VALUE_TYPE fr500_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 292,298 ---- /* MCLRACC-1*/ UNIT_FM0 /* mclracc,A==1 insn only in FM0 unit. */ }; ! static CGEN_ATTR_VALUE_ENUM_TYPE fr500_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** static CGEN_ATTR_VALUE_TYPE fr500_unit_m *** 324,330 **** /* MCLRACC-1*/ UNIT_FM01 /* mclracc,A==1 in FM0 or FM1 unit. */ }; ! static CGEN_ATTR_VALUE_TYPE fr550_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, --- 324,330 ---- /* MCLRACC-1*/ UNIT_FM01 /* mclracc,A==1 in FM0 or FM1 unit. */ }; ! static CGEN_ATTR_VALUE_ENUM_TYPE fr550_unit_mapping[] = { /* unit in insn actual unit */ /* NIL */ UNIT_NIL, *************** frv_vliw_reset (FRV_VLIW *vliw, unsigned *** 390,396 **** *_allowed_vliw tables above. */ static bfd_boolean match_unit (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE unit1, CGEN_ATTR_VALUE_TYPE unit2) { /* Map any specialized implementation units to actual ones. */ unit1 = vliw->unit_mapping[unit1]; --- 390,396 ---- *_allowed_vliw tables above. */ static bfd_boolean match_unit (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE unit1, CGEN_ATTR_VALUE_ENUM_TYPE unit2) { /* Map any specialized implementation units to actual ones. */ unit1 = vliw->unit_mapping[unit1]; *************** match_vliw (VLIW_COMBO *vliw1, VLIW_COMB *** 442,448 **** If one is found then return it. Otherwise return NULL. */ static VLIW_COMBO * ! add_next_to_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE unit) { int next = vliw->next_slot; VLIW_COMBO *current = vliw->current_vliw; --- 442,448 ---- If one is found then return it. Otherwise return NULL. */ static VLIW_COMBO * ! add_next_to_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE unit) { int next = vliw->next_slot; VLIW_COMBO *current = vliw->current_vliw; *************** add_next_to_vliw (FRV_VLIW *vliw, CGEN_A *** 473,479 **** Returns TRUE if found, FALSE otherwise. */ static bfd_boolean ! find_major_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { int i; --- 473,479 ---- Returns TRUE if found, FALSE otherwise. */ static bfd_boolean ! find_major_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { int i; *************** find_major_in_vliw (FRV_VLIW *vliw, CGEN *** 488,494 **** types. */ static bfd_boolean ! fr400_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { /* In the cpu file, all media insns are represented as being allowed in both media units. This makes it easier since this is the case for fr500. --- 488,494 ---- types. */ static bfd_boolean ! fr400_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { /* In the cpu file, all media insns are represented as being allowed in both media units. This makes it easier since this is the case for fr500. *************** fr400_check_insn_major_constraints (FRV_ *** 508,516 **** } static bfd_boolean ! fr450_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { ! CGEN_ATTR_VALUE_TYPE other_major; /* Our caller guarantees there's at least one other instruction. */ other_major = CGEN_INSN_ATTR_VALUE (vliw->insn[0], CGEN_INSN_FR450_MAJOR); --- 508,516 ---- } static bfd_boolean ! fr450_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { ! CGEN_ATTR_VALUE_ENUM_TYPE other_major; /* Our caller guarantees there's at least one other instruction. */ other_major = CGEN_INSN_ATTR_VALUE (vliw->insn[0], CGEN_INSN_FR450_MAJOR); *************** fr450_check_insn_major_constraints (FRV_ *** 543,549 **** } static bfd_boolean ! find_unit_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE unit) { int i; --- 543,549 ---- } static bfd_boolean ! find_unit_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE unit) { int i; *************** find_unit_in_vliw (FRV_VLIW *vliw, CGEN_ *** 556,563 **** static bfd_boolean find_major_in_slot (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE major, ! CGEN_ATTR_VALUE_TYPE slot) { int i; --- 556,563 ---- static bfd_boolean find_major_in_slot (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE major, ! CGEN_ATTR_VALUE_ENUM_TYPE slot) { int i; *************** fr550_find_float_in_vliw (FRV_VLIW *vliw *** 612,622 **** static bfd_boolean fr550_check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE major, const CGEN_INSN *insn) { ! CGEN_ATTR_VALUE_TYPE unit; ! CGEN_ATTR_VALUE_TYPE slot = (*vliw->current_vliw)[vliw->next_slot]; switch (slot) { case UNIT_I2: --- 612,622 ---- static bfd_boolean fr550_check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE major, const CGEN_INSN *insn) { ! CGEN_ATTR_VALUE_ENUM_TYPE unit; ! CGEN_ATTR_VALUE_ENUM_TYPE slot = (*vliw->current_vliw)[vliw->next_slot]; switch (slot) { case UNIT_I2: *************** fr550_check_insn_major_constraints (FRV_ *** 662,668 **** } static bfd_boolean ! fr500_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major) { /* TODO: A table might be faster for some of the more complex instances here. */ --- 662,668 ---- } static bfd_boolean ! fr500_check_insn_major_constraints (FRV_VLIW *vliw, CGEN_ATTR_VALUE_ENUM_TYPE major) { /* TODO: A table might be faster for some of the more complex instances here. */ *************** fr500_check_insn_major_constraints (FRV_ *** 770,776 **** static bfd_boolean check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_TYPE major, const CGEN_INSN *insn) { switch (vliw->mach) --- 770,776 ---- static bfd_boolean check_insn_major_constraints (FRV_VLIW *vliw, ! CGEN_ATTR_VALUE_ENUM_TYPE major, const CGEN_INSN *insn) { switch (vliw->mach) *************** int *** 796,803 **** frv_vliw_add_insn (FRV_VLIW *vliw, const CGEN_INSN *insn) { int index; ! CGEN_ATTR_VALUE_TYPE major; ! CGEN_ATTR_VALUE_TYPE unit; VLIW_COMBO *new_vliw; if (vliw->constraint_violation || CGEN_INSN_INVALID_P (insn)) --- 796,803 ---- frv_vliw_add_insn (FRV_VLIW *vliw, const CGEN_INSN *insn) { int index; ! CGEN_ATTR_VALUE_ENUM_TYPE major; ! CGEN_ATTR_VALUE_ENUM_TYPE unit; VLIW_COMBO *new_vliw; if (vliw->constraint_violation || CGEN_INSN_INVALID_P (insn)) *************** static const CGEN_IBASE frv_cgen_macro_i *** 6046,6082 **** /* nop$pack */ { -1, "nop", "nop", 32, ! { 0|A(ALIAS), { (1<info, this, --- 158,164 ---- enum bfd_architecture arch, enum bfd_endian endian, const char *name, ! CGEN_BITSET *isas, int machine) { cgen_disassemble((bfd_vma)pc, &this->info, this, *************** cgen::cgen_bi_endian_cpu::disassemble (P *** 172,178 **** machine, endian, name, ! isa_mask); } int --- 172,178 ---- machine, endian, name, ! isas); } int Index: sid/component/cgen-cpu/tracedis.cxx =================================================================== RCS file: /cvs/src/src/sid/component/cgen-cpu/tracedis.cxx,v retrieving revision 1.4 diff -c -p -r1.4 tracedis.cxx *** sid/component/cgen-cpu/tracedis.cxx 25 Jun 2004 17:44:35 -0000 1.4 --- sid/component/cgen-cpu/tracedis.cxx 19 Sep 2005 19:49:01 -0000 *************** cgen_disassemble(bfd_vma pc, *** 44,56 **** int machine, enum bfd_endian endian, const char *name, ! unsigned long isa_mask) { register_name(arch, name, machine); INIT_DISASSEMBLE_INFO(*info, this_ptr, trace_printf); info->application_data = this_ptr; info->flavour = flavour; ! info->insn_sets = isa_mask; /* may be 0 */ info->arch = arch; info->mach = machine; info->endian = endian; --- 44,56 ---- int machine, enum bfd_endian endian, const char *name, ! CGEN_BITSET *isas) { register_name(arch, name, machine); INIT_DISASSEMBLE_INFO(*info, this_ptr, trace_printf); info->application_data = this_ptr; info->flavour = flavour; ! info->insn_sets = isas; /* may be NULL */ info->arch = arch; info->mach = machine; info->endian = endian; Index: sid/component/cgen-cpu/tracedis.h =================================================================== RCS file: /cvs/src/src/sid/component/cgen-cpu/tracedis.h,v retrieving revision 1.3 diff -c -p -r1.3 tracedis.h *** sid/component/cgen-cpu/tracedis.h 25 Jun 2004 17:44:36 -0000 1.3 --- sid/component/cgen-cpu/tracedis.h 19 Sep 2005 19:49:01 -0000 *************** *** 1,5 **** --- 1,6 ---- #include "bfd.h" #include "dis-asm.h" + #include "opcode/cgen-bitset.h" // ansidecl.h interferes with this perfectly ordinary word #undef AND *************** typedef void (*MEMERR)(int status, bfd_v *** 9,12 **** typedef void (*PRINTADDR)(bfd_vma addr, struct disassemble_info *info); typedef int (*SYMATADDR)(bfd_vma addr, struct disassemble_info * info); ! void cgen_disassemble(bfd_vma, disassemble_info *, void *, READMEM, MEMERR, PRINTADDR, SYMATADDR, disassembler_ftype, enum bfd_flavour, enum bfd_architecture, int machine, enum bfd_endian, const char *, unsigned long isa_mask); --- 10,13 ---- typedef void (*PRINTADDR)(bfd_vma addr, struct disassemble_info *info); typedef int (*SYMATADDR)(bfd_vma addr, struct disassemble_info * info); ! void cgen_disassemble(bfd_vma, disassemble_info *, void *, READMEM, MEMERR, PRINTADDR, SYMATADDR, disassembler_ftype, enum bfd_flavour, enum bfd_architecture, int machine, enum bfd_endian, const char *, CGEN_BITSET *isas); Index: sim/frv/frv-sim.h =================================================================== RCS file: /cvs/src/src/sim/frv/frv-sim.h,v retrieving revision 1.6 diff -c -p -r1.6 frv-sim.h *** sim/frv/frv-sim.h 1 Mar 2004 10:11:43 -0000 1.6 --- sim/frv/frv-sim.h 19 Sep 2005 19:49:01 -0000 *************** struct _device { int foo; }; *** 143,149 **** /* maintain the address of the start of the previous VLIW insn sequence. */ extern IADDR previous_vliw_pc; ! extern CGEN_ATTR_VALUE_TYPE frv_current_fm_slot; /* Hardware status. */ #define GET_HSR0() GET_H_SPR (H_SPR_HSR0) --- 143,149 ---- /* maintain the address of the start of the previous VLIW insn sequence. */ extern IADDR previous_vliw_pc; ! extern CGEN_ATTR_VALUE_ENUM_TYPE frv_current_fm_slot; /* Hardware status. */ #define GET_HSR0() GET_H_SPR (H_SPR_HSR0) Index: sim/frv/mloop.in =================================================================== RCS file: /cvs/src/src/sim/frv/mloop.in,v retrieving revision 1.3 diff -c -p -r1.3 mloop.in *** sim/frv/mloop.in 1 Mar 2004 10:11:43 -0000 1.3 --- sim/frv/mloop.in 19 Sep 2005 19:49:01 -0000 *************** cat <