From: hjl Date: Thu, 15 Mar 2007 17:30:29 +0000 (+0000) Subject: gas/ X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=47667312a92eca0ca4805b92e1de8fad69a341f8;p=pf3gnuchains%2Fpf3gnuchains3x.git gas/ 2007-03-15 H.J. Lu * config/tc-i386.c (md_begin): Use i386_regtab_size to scan i386_regtab. (parse_register): Use i386_regtab_size instead of ARRAY_SIZE on i386_regtab. opcodes/ 2007-03-15 H.J. Lu * i386-opc.c: Include "libiberty.h". (i386_regtab): Remove the last entry. (i386_regtab_size): New. (i386_float_regtab_size): Likewise. * i386-opc.h (i386_regtab_size): New. (i386_float_regtab_size): Likewise. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index da20b24033..24ac6e76eb 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2007-03-15 H.J. Lu + + * config/tc-i386.c (md_begin): Use i386_regtab_size to scan + i386_regtab. + (parse_register): Use i386_regtab_size instead of ARRAY_SIZE + on i386_regtab. + 2007-03-15 Alexandre Oliva PR gas/4184 diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 26684c8e98..0f3077c3c6 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1238,8 +1238,9 @@ md_begin () reg_hash = hash_new (); { const reg_entry *regtab; + unsigned int regtab_size = i386_regtab_size; - for (regtab = i386_regtab; regtab->reg_name != NULL; regtab++) + for (regtab = i386_regtab; regtab_size--; regtab++) { hash_err = hash_insert (reg_hash, regtab->reg_name, (PTR) regtab); if (hash_err) @@ -5791,7 +5792,7 @@ parse_register (char *reg_string, char **end_op) know (e->X_op == O_register); know (e->X_add_number >= 0 - && (valueT) e->X_add_number < ARRAY_SIZE (i386_regtab)); + && (valueT) e->X_add_number < i386_regtab_size); r = i386_regtab + e->X_add_number; *end_op = input_line_pointer; } diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index a478d04969..3d0b34fe87 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,15 @@ 2007-03-15 H.J. Lu + * i386-opc.c: Include "libiberty.h". + (i386_regtab): Remove the last entry. + (i386_regtab_size): New. + (i386_float_regtab_size): Likewise. + + * i386-opc.h (i386_regtab_size): New. + (i386_float_regtab_size): Likewise. + +2007-03-15 H.J. Lu + * Makefile.am (CFILES): Add i386-opc.c. (ALL_MACHINES): Add i386-opc.lo. Run "make dep-am". diff --git a/opcodes/i386-opc.c b/opcodes/i386-opc.c index 05de431d95..9c961134ff 100644 --- a/opcodes/i386-opc.c +++ b/opcodes/i386-opc.c @@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include "sysdep.h" +#include "libiberty.h" #include "i386-opc.h" const template i386_optab[] = @@ -1631,11 +1632,10 @@ const reg_entry i386_regtab[] = /* No type will make this register rejected for all purposes except for addressing. This saves creating one extra type for RIP. */ {"rip", BaseIndex, 0, 0}, - - /* sentinel */ - {NULL, 0, 0, 0} }; +const unsigned int i386_regtab_size = ARRAY_SIZE (i386_regtab); + const reg_entry i386_float_regtab[] = { {"st(0)", FloatReg|FloatAcc, 0, 0}, @@ -1648,6 +1648,8 @@ const reg_entry i386_float_regtab[] = {"st(7)", FloatReg, 0, 7} }; +const unsigned int i386_float_regtab_size = ARRAY_SIZE (i386_float_regtab); + /* Segment stuff. */ const seg_entry cs = { "cs", 0x2e }; const seg_entry ds = { "ds", 0x3e }; diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index f944b9de7c..83211dda80 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -214,7 +214,9 @@ reg_entry; #define REGNAM_EAX 41 extern const reg_entry i386_regtab[]; +extern const unsigned int i386_regtab_size; extern const reg_entry i386_float_regtab[]; +extern const unsigned int i386_float_regtab_size; typedef struct {