From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26998 invoked by alias); 11 Feb 2010 12:51:20 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 26955 invoked by uid 9674); 11 Feb 2010 12:51:17 -0000 Date: Thu, 11 Feb 2010 12:51:00 -0000 Message-ID: <20100211125117.26940.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] master: Merge remote branch 'gdb/master' X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 67b33cc514c321ad5f1cc33f3cb56417c6c480ed X-Git-Newrev: b97aedc0ebe8e565b86b700acea4e4dc9f4c6308 X-SW-Source: 2010-q1/txt/msg00117.txt.bz2 List-Id: The branch, master has been updated via b97aedc0ebe8e565b86b700acea4e4dc9f4c6308 (commit) via 1a99d28b458e4bde852d21379361c04cb0a5cd6c (commit) via 3288a709e052ccc38142b6b25f82efe9e10e3e49 (commit) via e9cf95f518784f6c7f51a26afa186585b05acaae (commit) via 4b2c961f523ce7d188de52161fbded5a20645699 (commit) via 8d444990cf3cbf96eee5c9d5c78472febf22c706 (commit) via 7cd8b034da1a4cb64cd483cc9044195e4317d7e8 (commit) via 58228f24141f1eb924c896c386b3ba8befd9e2ca (commit) via c95a567addd264054ce9b32954f891f31af3ee57 (commit) via 7fb0737847d9e332a397f69b8ab425bf9ef13209 (commit) via c754b51a9f660fb232ceae61b770a7486ff9083e (commit) via c675abbfe817dd0f9be42e0f7f05fd03622cdeb8 (commit) via 0db0abbf25d9e13362657a597d108f7b26eb2957 (commit) from 67b33cc514c321ad5f1cc33f3cb56417c6c480ed (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b97aedc0ebe8e565b86b700acea4e4dc9f4c6308 Merge: 67b33cc514c321ad5f1cc33f3cb56417c6c480ed 1a99d28b458e4bde852d21379361c04cb0a5cd6c Author: Jan Kratochvil Date: Thu Feb 11 13:51:03 2010 +0100 Merge remote branch 'gdb/master' commit 1a99d28b458e4bde852d21379361c04cb0a5cd6c Author: spop Date: Thu Feb 11 05:06:13 2010 +0000 2010-02-10 Quentin Neill Sebastian Pop gas: * config/tc-i386.c (vec_imm4) New operand type. (fits_in_imm4): New. (VEX_check_operands): New. (check_reverse): Call VEX_check_operands. (build_modrm_byte): Reintroduce code for 5 operand insns. Fix whitespace. gas/testsuite: * gas/i386/x86-64-xop.d: Add vpermil2p[sd] tests. * gas/i386/x86-64-xop.s: Likewise. * gas/i386/xop.d: Likewise. * gas/i386/xop.s: Likewise. opcodes: * i386-dis.c (OP_EX_VexImmW): Reintroduced function to handle 5th imm8 operand. (PREFIX_VEX_3A48): Added. (PREFIX_VEX_3A49): Added. (VEX_W_3A48_P_2): Added. (VEX_W_3A49_P_2): Added. (prefix table): Added entries for PREFIX_VEX_3A48 and PREFIX_VEX_3A49. (vex table): Added entries for VEX_W_3A48_P_2 and and VEX_W_3A49_P_2. * i386-gen.c (operand_type_init): Added OPERAND_TYPE_VEC_IMM4 for Vec_Imm4 operands. * i386-opc.h (enum): Added Vec_Imm4. (i386_operand_type): Added vec_imm4. * i386-opc.tbl: Add entries for vpermilp[ds]. * i386-init.h: Regenerated. * i386-tbl.h: Regenerated. commit 3288a709e052ccc38142b6b25f82efe9e10e3e49 Author: gdbadmin Date: Thu Feb 11 00:00:33 2010 +0000 *** empty log message *** commit e9cf95f518784f6c7f51a26afa186585b05acaae Author: Alan Modra Date: Wed Feb 10 23:00:05 2010 +0000 daily update commit 4b2c961f523ce7d188de52161fbded5a20645699 Author: Vladimir Prus Date: Wed Feb 10 22:22:00 2010 +0000 * mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Add extra whitespace character after a dot in comment. (mi_cmd_stack_list_arguments, mi_cmd_stack_list_variables): Likewise. (list_args_or_locals): For the 'all' (that is -stack-list-variables) case, always output list of tuples. Output 'arg' field if variable is argument. commit 8d444990cf3cbf96eee5c9d5c78472febf22c706 Author: H.J. Lu Date: Wed Feb 10 21:11:42 2010 +0000 Fix "infor reg sse" on Linux/x86-64. 2010-02-10 H.J. Lu PR gdb/11265 * amd64-linux-tdep.c (amd64_linux_register_reggroup_p): Call i386_register_reggroup_p instead of default_register_reggroup_p. commit 7cd8b034da1a4cb64cd483cc9044195e4317d7e8 Author: Richard Sandiford Date: Wed Feb 10 19:59:07 2010 +0000 gas/ * config/tc-ppc.c (md_show_usage): Add -mpwr4, -mpwr5, -mpwr5x, -mpwr6 and -mpwr7. opcodes/ * ppc-dis.c (ppc_opts): Add "pwr4", "pwr5", "pwr5x", "pwr6" and "pwr7". Move "a2" into alphabetical order. commit 58228f24141f1eb924c896c386b3ba8befd9e2ca Author: Tom Tromey Date: Wed Feb 10 18:57:21 2010 +0000 gdb * parser-defs.h (parser_debug): Declare. * parse.c (_initialize_parse): Install "debug parser" set/show command. (parser_debug): New global. (show_parserdebug): New function. * c-exp.y (c_parse): Set yydebug. gdb/testsuite * gdb.texinfo (Debugging Output): Document set debug parser and show debug parser. commit c95a567addd264054ce9b32954f891f31af3ee57 Author: H.J. Lu Date: Wed Feb 10 18:45:02 2010 +0000 Add i387_ext, i386_eflags and i386_mxcsr. 2010-02-10 H.J. Lu * target-descriptions.c (tdesc_type): Add TDESC_TYPE_I387_EXT, TDESC_TYPE_I386_EFLAGS and TDESC_TYPE_I386_MXCSR. (tdesc_predefined_types): Add i387_ext, i386_eflags and i386_mxcsr. (tdesc_find_type): New. (tdesc_gdb_type): Use tdesc_find_type. Handle TDESC_TYPE_I387_EXT, TDESC_TYPE_I386_EFLAGS and TDESC_TYPE_I386_MXCSR. * target-descriptions.h (tdesc_find_type): New. commit 7fb0737847d9e332a397f69b8ab425bf9ef13209 Author: Michael Snyder Date: Wed Feb 10 18:39:44 2010 +0000 2010-02-10 Michael Snyder * gdb-gdb.py: Comment fix. commit c754b51a9f660fb232ceae61b770a7486ff9083e Author: gdbadmin Date: Wed Feb 10 00:00:33 2010 +0000 *** empty log message *** commit c675abbfe817dd0f9be42e0f7f05fd03622cdeb8 Author: Alan Modra Date: Tue Feb 9 23:00:05 2010 +0000 daily update commit 0db0abbf25d9e13362657a597d108f7b26eb2957 Author: H.J. Lu Date: Tue Feb 9 18:58:57 2010 +0000 Document i387_ext, i386_eflags and i386_mxcsr. 2010-02-09 H.J. Lu * gdb.texinfo (Predefined Target Types): Add i387_ext, i386_eflags and i386_mxcsr. ----------------------------------------------------------------------- Summary of changes: bfd/version.h | 2 +- gdb/ChangeLog | 35 + gdb/amd64-linux-tdep.c | 2 +- gdb/c-exp.y | 3 + gdb/doc/ChangeLog | 10 + gdb/doc/gdb.texinfo | 18 + gdb/gdb-gdb.py | 4 +- gdb/mi/mi-cmd-stack.c | 22 +- gdb/parse.c | 20 + gdb/parser-defs.h | 2 + gdb/target-descriptions.c | 99 +- gdb/target-descriptions.h | 4 + gdb/version.in | 2 +- opcodes/ChangeLog | 26 + opcodes/i386-dis.c | 75 +- opcodes/i386-gen.c | 3 + opcodes/i386-init.h | 97 +- opcodes/i386-opc.h | 4 + opcodes/i386-opc.tbl | 10 + opcodes/i386-tbl.h |11262 +++++++++++++++++++++++---------------------- opcodes/ppc-dis.c | 26 +- 21 files changed, 6116 insertions(+), 5610 deletions(-) First 500 lines of diff: diff --git a/bfd/version.h b/bfd/version.h index b8df841..e405ed3 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20100209 +#define BFD_VERSION_DATE 20100211 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b169962..acd65e8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,38 @@ +2010-02-11 Vladimir Prus + + * mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Add extra + whitespace character after a dot in comment. + (mi_cmd_stack_list_arguments, mi_cmd_stack_list_variables): + Likewise. + (list_args_or_locals): For the 'all' (that is + -stack-list-variables) case, always output list of tuples. + Output 'arg' field if variable is argument. + +2010-02-10 Tom Tromey + + * parser-defs.h (parser_debug): Declare. + * parse.c (_initialize_parse): Install "debug parser" set/show + command. + (parser_debug): New global. + (show_parserdebug): New function. + * c-exp.y (c_parse): Set yydebug. + +2010-02-10 H.J. Lu + + * target-descriptions.c (tdesc_type): Add TDESC_TYPE_I387_EXT, + TDESC_TYPE_I386_EFLAGS and TDESC_TYPE_I386_MXCSR. + (tdesc_predefined_types): Add i387_ext, i386_eflags and + i386_mxcsr. + (tdesc_find_type): New. + (tdesc_gdb_type): Use tdesc_find_type. Handle TDESC_TYPE_I387_EXT, + TDESC_TYPE_I386_EFLAGS and TDESC_TYPE_I386_MXCSR. + + * target-descriptions.h (tdesc_find_type): New. + +2010-02-10 Michael Snyder + + * gdb-gdb.py: Comment fix. + 2010-02-09 Tristan Gingold * machoread.c (macho_symfile_relocate): New function. diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c index 01cc1ce..c28eef7 100644 --- a/gdb/amd64-linux-tdep.c +++ b/gdb/amd64-linux-tdep.c @@ -262,7 +262,7 @@ amd64_linux_register_reggroup_p (struct gdbarch *gdbarch, int regnum, return (group == system_reggroup || group == save_reggroup || group == restore_reggroup); - return default_register_reggroup_p (gdbarch, regnum, group); + return i386_register_reggroup_p (gdbarch, regnum, group); } /* Set the program counter for process PTID to PC. */ diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 8e00979..845771c 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -2450,6 +2450,9 @@ c_parse (void) gdb_assert (! macro_original_text); make_cleanup (scan_macro_cleanup, 0); + make_cleanup_restore_integer (&yydebug); + yydebug = parser_debug; + /* Initialize some state used by the lexer. */ last_was_structop = 0; saw_name_at_eof = 0; diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 8027d58..b5bef2f 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,13 @@ +2010-02-10 Tom Tromey + + * gdb.texinfo (Debugging Output): Document set debug parser and + show debug parser. + +2010-02-09 H.J. Lu + + * gdb.texinfo (Predefined Target Types): Add i387_ext, + i386_eflags and i386_mxcsr. + 2010-02-08 H.J. Lu * gdb.texinfo: Document i386 target features. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index b31cfed..4fc064d 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -18848,6 +18848,15 @@ is off. @item show debug overload Displays the current state of displaying @value{GDBN} C@t{++} overload debugging info. +@cindex expression parser, debugging info +@cindex debug expression parser +@item set debug parser +Turns on or off the display of expression parser debugging output. +Internally, this sets the @code{yydebug} variable in the expression +parser. @xref{Tracing, , Tracing Your Parser, bison, Bison}, for +details. The default is off. +@item show debug parser +Show the current state of expression parser debugging. @cindex packets, reporting on stdout @cindex serial connections, debugging @cindex debug remote protocol @@ -32749,6 +32758,15 @@ Double precision IEEE floating point. @item arm_fpa_ext The 12-byte extended precision format used by ARM FPA registers. +@item i387_ext +The 10-byte extended precision format used by x87 registers. + +@item i386_eflags +32bit @sc{eflags} register used by x86. + +@item i386_mxcsr +32bit @sc{mxcsr} register used by x86. + @end table @node Standard Target Features diff --git a/gdb/gdb-gdb.py b/gdb/gdb-gdb.py index c603897..84e8914 100644 --- a/gdb/gdb-gdb.py +++ b/gdb/gdb-gdb.py @@ -23,8 +23,8 @@ class TypeFlag: and its value. In the GDB sources, struct type has a component called instance_flags - whose the value is the addition of various flags. These flags are - defined by two emumerates: type_flag_value, and type_instance_flag_value. + in which the value is the addition of various flags. These flags are + defined by two enumerates: type_flag_value, and type_instance_flag_value. This class helps us recreate a list with all these flags that is easy to manipulate and sort. Because all flag names start with either TYPE_FLAG_ or TYPE_INSTANCE_FLAG_, a short_name attribute is provided diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c index 3176a6a..eb976c3 100644 --- a/gdb/mi/mi-cmd-stack.c +++ b/gdb/mi/mi-cmd-stack.c @@ -138,7 +138,7 @@ parse_print_values (char *name) mi_no_values, mi_all_values, mi_simple_values); } -/* Print a list of the locals for the current frame. With argument of +/* Print a list of the locals for the current frame. With argument of 0, print only the names, with argument of 1 print also the values. */ void @@ -155,7 +155,7 @@ mi_cmd_stack_list_locals (char *command, char **argv, int argc) list_args_or_locals (locals, parse_print_values (argv[0]), frame); } -/* Print a list of the arguments for the current frame. With argument +/* Print a list of the arguments for the current frame. With argument of 0, print only the names, with argument of 1 print also the values. */ void @@ -216,8 +216,9 @@ mi_cmd_stack_list_args (char *command, char **argv, int argc) } /* Print a list of the local variables (including arguments) for the - current frame. With argument of 0, print only the names, with - argument of 1 print also the values. */ + current frame. ARGC must be 1 and ARGV[0] specify if only the names, + or both names and values of the variables must be printed. See + parse_print_value for possible values. */ void mi_cmd_stack_list_variables (char *command, char **argv, int argc) { @@ -227,9 +228,9 @@ mi_cmd_stack_list_variables (char *command, char **argv, int argc) if (argc != 1) error (_("Usage: PRINT_VALUES")); - frame = get_selected_frame (NULL); + frame = get_selected_frame (NULL); - list_args_or_locals (all, parse_print_values (argv[0]), frame); + list_args_or_locals (all, parse_print_values (argv[0]), frame); } @@ -311,10 +312,12 @@ list_args_or_locals (enum what_to_list what, int values, struct frame_info *fi) struct cleanup *cleanup_tuple = NULL; struct symbol *sym2; struct value *val; - if (values != PRINT_NO_VALUES) + if (values != PRINT_NO_VALUES || what == all) cleanup_tuple = make_cleanup_ui_out_tuple_begin_end (uiout, NULL); ui_out_field_string (uiout, "name", SYMBOL_PRINT_NAME (sym)); + if (what == all && SYMBOL_IS_ARGUMENT (sym)) + ui_out_field_int (uiout, "arg", 1); if (SYMBOL_IS_ARGUMENT (sym)) sym2 = lookup_symbol (SYMBOL_NATURAL_NAME (sym), @@ -341,7 +344,6 @@ list_args_or_locals (enum what_to_list what, int values, struct frame_info *fi) language_def (SYMBOL_LANGUAGE (sym2))); ui_out_field_stream (uiout, "value", stb); } - do_cleanups (cleanup_tuple); break; case PRINT_ALL_VALUES: { @@ -353,10 +355,12 @@ list_args_or_locals (enum what_to_list what, int values, struct frame_info *fi) (val, stb->stream, 0, &opts, language_def (SYMBOL_LANGUAGE (sym2))); ui_out_field_stream (uiout, "value", stb); - do_cleanups (cleanup_tuple); } break; } + + if (values != PRINT_NO_VALUES || what == all) + do_cleanups (cleanup_tuple); } } if (BLOCK_FUNCTION (block)) diff --git a/gdb/parse.c b/gdb/parse.c index d5a199b..aabc461 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -109,6 +109,18 @@ show_expressiondebug (struct ui_file *file, int from_tty, fprintf_filtered (file, _("Expression debugging is %s.\n"), value); } + +/* Non-zero if an expression parser should set yydebug. */ +int parser_debug; + +static void +show_parserdebug (struct ui_file *file, int from_tty, + struct cmd_list_element *c, const char *value) +{ + fprintf_filtered (file, _("Parser debugging is %s.\n"), value); +} + + static void free_funcalls (void *ignore); static int prefixify_expression (struct expression *); @@ -1377,4 +1389,12 @@ When non-zero, the internal representation of expressions will be printed."), NULL, show_expressiondebug, &setdebuglist, &showdebuglist); + add_setshow_boolean_cmd ("parser", class_maintenance, + &parser_debug, _("\ +Set parser debugging."), _("\ +Show parser debugging."), _("\ +When non-zero, expression parser tracing will be enabled."), + NULL, + show_parserdebug, + &setdebuglist, &showdebuglist); } diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h index 6fcf7ae..c4eb1a0 100644 --- a/gdb/parser-defs.h +++ b/gdb/parser-defs.h @@ -29,6 +29,8 @@ struct block; +extern int parser_debug; + extern struct expression *expout; extern int expout_size; extern int expout_ptr; diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 4fbc72c..9856d6f 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -117,6 +117,9 @@ typedef struct tdesc_type TDESC_TYPE_IEEE_SINGLE, TDESC_TYPE_IEEE_DOUBLE, TDESC_TYPE_ARM_FPA_EXT, + TDESC_TYPE_I387_EXT, + TDESC_TYPE_I386_EFLAGS, + TDESC_TYPE_I386_MXCSR, /* Types defined by a target feature. */ TDESC_TYPE_VECTOR, @@ -461,7 +464,10 @@ static struct tdesc_type tdesc_predefined_types[] = { "data_ptr", TDESC_TYPE_DATA_PTR }, { "ieee_single", TDESC_TYPE_IEEE_SINGLE }, { "ieee_double", TDESC_TYPE_IEEE_DOUBLE }, - { "arm_fpa_ext", TDESC_TYPE_ARM_FPA_EXT } + { "arm_fpa_ext", TDESC_TYPE_ARM_FPA_EXT }, + { "i387_ext", TDESC_TYPE_I387_EXT }, + { "i386_eflags", TDESC_TYPE_I386_EFLAGS }, + { "i386_mxcsr", TDESC_TYPE_I386_MXCSR } }; /* Return the type associated with ID in the context of FEATURE, or @@ -486,12 +492,38 @@ tdesc_named_type (const struct tdesc_feature *feature, const char *id) return NULL; } +/* Lookup type associated with ID. */ + +struct type * +tdesc_find_type (struct gdbarch *gdbarch, const char *id) +{ + struct tdesc_arch_reg *reg; + struct tdesc_arch_data *data; + int i, num_regs; + + data = gdbarch_data (gdbarch, tdesc_data); + num_regs = VEC_length (tdesc_arch_reg, data->arch_regs); + for (i = 0; i < num_regs; i++) + { + reg = VEC_index (tdesc_arch_reg, data->arch_regs, i); + if (reg->reg + && reg->reg->tdesc_type + && reg->type + && strcmp (id, reg->reg->tdesc_type->name) == 0) + return reg->type; + } + + return NULL; +} + /* Construct, if necessary, and return the GDB type implementing target type TDESC_TYPE for architecture GDBARCH. */ static struct type * tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) { + struct type *type; + switch (tdesc_type->kind) { /* Predefined types. */ @@ -531,6 +563,16 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) case TDESC_TYPE_DATA_PTR: return builtin_type (gdbarch)->builtin_data_ptr; + default: + break; + } + + type = tdesc_find_type (gdbarch, tdesc_type->name); + if (type) + return type; + + switch (tdesc_type->kind) + { case TDESC_TYPE_IEEE_SINGLE: return arch_float_type (gdbarch, -1, "builtin_type_ieee_single", floatformats_ieee_single); @@ -543,6 +585,61 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) return arch_float_type (gdbarch, -1, "builtin_type_arm_ext", floatformats_arm_ext); + case TDESC_TYPE_I387_EXT: + return arch_float_type (gdbarch, -1, "builtin_type_i387_ext", + floatformats_i387_ext); + + case TDESC_TYPE_I386_EFLAGS: + { + struct type *type; + + type = arch_flags_type (gdbarch, "builtin_type_i386_eflags", 4); + append_flags_type_flag (type, 0, "CF"); + append_flags_type_flag (type, 1, NULL); + append_flags_type_flag (type, 2, "PF"); + append_flags_type_flag (type, 4, "AF"); + append_flags_type_flag (type, 6, "ZF"); + append_flags_type_flag (type, 7, "SF"); + append_flags_type_flag (type, 8, "TF"); + append_flags_type_flag (type, 9, "IF"); + append_flags_type_flag (type, 10, "DF"); + append_flags_type_flag (type, 11, "OF"); + append_flags_type_flag (type, 14, "NT"); + append_flags_type_flag (type, 16, "RF"); + append_flags_type_flag (type, 17, "VM"); + append_flags_type_flag (type, 18, "AC"); + append_flags_type_flag (type, 19, "VIF"); + append_flags_type_flag (type, 20, "VIP"); + append_flags_type_flag (type, 21, "ID"); + + return type; + } + break; + + case TDESC_TYPE_I386_MXCSR: + { + struct type *type; + + type = arch_flags_type (gdbarch, "builtin_type_i386_mxcsr", 4); + append_flags_type_flag (type, 0, "IE"); + append_flags_type_flag (type, 1, "DE"); + append_flags_type_flag (type, 2, "ZE"); + append_flags_type_flag (type, 3, "OE"); + append_flags_type_flag (type, 4, "UE"); + append_flags_type_flag (type, 5, "PE"); + append_flags_type_flag (type, 6, "DAZ"); + append_flags_type_flag (type, 7, "IM"); + append_flags_type_flag (type, 8, "DM"); + append_flags_type_flag (type, 9, "ZM"); + append_flags_type_flag (type, 10, "OM"); + append_flags_type_flag (type, 11, "UM"); + append_flags_type_flag (type, 12, "PM"); + append_flags_type_flag (type, 15, "FZ"); + + return type; + } + break; + /* Types defined by a target feature. */ case TDESC_TYPE_VECTOR: { diff --git a/gdb/target-descriptions.h b/gdb/target-descriptions.h index 17f52eb..da0564b 100644 --- a/gdb/target-descriptions.h +++ b/gdb/target-descriptions.h @@ -176,6 +176,10 @@ const char *tdesc_register_name (struct gdbarch *gdbarch, int regno); struct type *tdesc_register_type (struct gdbarch *gdbarch, int regno); +/* Return the type associated with ID, from the target description. */ + +struct type *tdesc_find_type (struct gdbarch *gdbarch, const char *id); + /* Check whether REGNUM is a member of REGGROUP using the target description. Return -1 if the target description does not specify a group. */ diff --git a/gdb/version.in b/gdb/version.in index f3eb00c..71c9855 100644 --- a/gdb/version.in +++ b/gdb/version.in @@ -1 +1 @@ -7.0.50.20100209-cvs +7.0.50.20100211-cvs diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index c03049d..fb6b162 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,29 @@ +2010-02-10 Quentin Neill + Sebastian Pop + + * i386-dis.c (OP_EX_VexImmW): Reintroduced + function to handle 5th imm8 operand. + (PREFIX_VEX_3A48): Added. + (PREFIX_VEX_3A49): Added. + (VEX_W_3A48_P_2): Added. + (VEX_W_3A49_P_2): Added. + (prefix table): Added entries for PREFIX_VEX_3A48 + and PREFIX_VEX_3A49. + (vex table): Added entries for VEX_W_3A48_P_2 and + and VEX_W_3A49_P_2. + * i386-gen.c (operand_type_init): Added OPERAND_TYPE_VEC_IMM4 + for Vec_Imm4 operands. + * i386-opc.h (enum): Added Vec_Imm4. + (i386_operand_type): Added vec_imm4. + * i386-opc.tbl: Add entries for vpermilp[ds]. + * i386-init.h: Regenerated. + * i386-tbl.h: Regenerated. + +2010-02-10 Richard Sandiford + + * ppc-dis.c (ppc_opts): Add "pwr4", "pwr5", "pwr5x", "pwr6" + and "pwr7". Move "a2" into alphabetical order. + 2010-02-08 Philipp Tomsich * ppc-dis.c (ppc_opts): Add titan entry. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index a3e216e..34dcd10 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -91,6 +91,7 @@ static void OP_M (int, int); static void OP_VEX (int, int); static void OP_EX_Vex (int, int); static void OP_EX_VexW (int, int); +static void OP_EX_VexImmW (int, int); static void OP_XMM_Vex (int, int); static void OP_XMM_VexW (int, int); static void OP_REG_VexI4 (int, int); @@ -380,6 +381,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define EXVexW { OP_EX_VexW, x_mode } #define EXdVexW { OP_EX_VexW, d_mode } #define EXqVexW { OP_EX_VexW, q_mode } +#define EXVexImmW { OP_EX_VexImmW, x_mode } #define XMVex { OP_XMM_Vex, 0 } #define XMVexScalar { OP_XMM_Vex, scalar_mode } #define XMVexW { OP_XMM_VexW, 0 } hooks/post-receive -- Repository for Project Archer.