aboutsummaryrefslogtreecommitdiff
path: root/binutils/ieee.c
AgeCommit message (Collapse)AuthorFilesLines
1996-10-28 * ieee.c (ieee_array_type): Remember the correct size.Ian Lance Taylor1-2/+9
1996-10-28 * ieee.c (ieee_finish_compilation_unit): Permit coalescing rangesIan Lance Taylor1-5/+9
that are up to 0x1000 bytes apart, not just 64. (ieee_add_bb11_blocks): Don't bother to emit a BB11 that is less than 0x100 bytes. (ieee_lineno): Only emit line numbers that are less than info->highaddr.
1996-10-25 * ieee.c (struct ieee_defined_enum): Add defined field.Ian Lance Taylor1-42/+61
(ieee_enum_type): If the enum tag has been seen before but not defined, reuse the same type index, and define it. (ieee_tag_type): If this enum has not been defined, add an undefined entry to the list of enums. PR 10946.
1996-09-16 * ieee.c (struct ieee_write_type): Add reflocalp field.Ian Lance Taylor1-13/+32
(ieee_pointer_type): Set reflocalp after pushing type. (ieee_function_type): If reflocalp is set, make this type local. (ieee_range_type, ieee_array_type, ieee_set_type): Likewise. (ieee_const_type, ieee_volatile_type): Likewise. (ieee_struct_field, ieee_class_baseclass): Likewise. PR 10638.
1996-09-16 * ieee.c (struct ieee_info): Add global_types field.Ian Lance Taylor1-55/+193
(parse_ieee_bb): When starting a BB1, initialize the types field to the global_types field. (parse_ieee_be): When ending a BB2, copy the types field to the global_types field.
1996-03-20 * ieee.c (struct ieee_handle): Add fields complex_float_index andIan Lance Taylor1-34/+78
complex_double_index. (ieee_complex_type): Cache type index in complex_float_index and complex_double_index, depending upon size. Set size on type stack to size * 2. * ieee.c (ieee_empty_type): Use builtin_unknown, not 0. (ieee_void_type): Use builtin_void, not 1. * ieee.c (parse_ieee_ty): Handle 'V' type code. (parse_ieee_atn): Don't require two numbers for type 10. * ieee.c (parse_ieee_be): Add one to offset at end of function or block. * ieee.c (struct ieee_block): Add field skip. (parse_ieee_bb): Don't call debug_record_function for __XRYCPP function, and set skip field. (parse_ieee_be): Don't call debug_end_function if skip is set.
1996-03-18 * stabs.c (parse_stab_range_type): A complex type is defined as aIan Lance Taylor1-0/+4
subrange of itself with the high bound zero. * ieee.c (ieee_complex_type): Don't crash on sizes of 12 or 16.
1996-03-12 * ieee.c (ieee_write_undefined_tag): Switch to global_types evenIan Lance Taylor1-0/+26
if it is not empty. (ieee_tag_type): For an enum, look through info->enums.
1996-02-14 * ieee.c (ieee_regno_to_genreg): Convert register numbers for m68kIan Lance Taylor1-0/+32
and i960. (ieee_genreg_to_regno): Likewise.
1996-02-12 * ieee.c: Extensive changes to write code to put types in theIan Lance Taylor1-449/+1181
global type block when possible, to output ranges for all memory occupied by the module, and to improve efficiency.
1996-02-07 * ieee.c (ieee_start_compilation_unit): Clear modified andIan Lance Taylor1-52/+35
modified_alloc fields of info.
1996-01-24 * ieee.c (struct ieee_modified_type): Define.Ian Lance Taylor1-14/+100
(struct ieee_handle): Add modified and modified_alloc fields. (ieee_get_modified_info): New static function. (ieee_pointer_type): Cache type index. (ieee_const_type): Likewise. (ieee_volatile_type): Likewise.
1996-01-24 * ieee.c (ieee_define_named_type): When creating a tag for anIan Lance Taylor1-0/+4
anonymous struct, copy the name into memory. (ieee_tag_type): Likewise. * debug.c (debug_write_type): Only check and set id field for an unnamed object. (debug_write_class_type): Likewise.
1996-01-24 * ieee.c: Various changes to write out types for functions andIan Lance Taylor1-162/+471
references, and to not write out unnecessary function types.
1996-01-24 * ieee.c (struct ieee_var): Remove variable field. Add kindIan Lance Taylor1-29/+50
field, and define some enum constants for it. (parse_ieee_ty): Set kind field of variable for 'x' and 'X' types. (parse_ieee_atn): Make an indirect slot for an external variable, although we otherwise don't record it. Set kind field rather than variable field of pvar. (ieee_read_cxx_class): Try to get the type of a static member. (ieee_read_reference): Check kind field rather than variable field.
1996-01-24 * ieee.c: Various changes to handle C++ reference types.Ian Lance Taylor1-126/+453
1996-01-23 * ieee.c: Various changes to write out definitions of C++ classes.Ian Lance Taylor1-37/+485
1996-01-23 * ieee.c: Extensive changes to pass a single info argument aroundIan Lance Taylor1-448/+1330
in the reading routines, rather than several arguments. Add code to read C++ debugging records.
1996-01-19 * debug.h (struct debug_write_fns): Remove ellipsis_type. Add intIan Lance Taylor1-65/+82
and boolean parameters to function_type. Add boolean parameter to method_type. (debug_make_ellipsis_type): Don't declare. (debug_make_function_type): Add debug_type * and boolean parameters. Change all callers. (debug_make_method_type): Add boolean parameter. Change all callers. (debug_get_parameter_types): Add boolean * parameter. Change all callers. (debug_get_target_type): Declare. * debug.c (struct debug_function_type): Add fields arg_types and varargs. (struct debug_method_type): Add field varargs. (debug_ellipsis_type, ELLIPSIS_P): Remove. (debug_make_ellipsis_type): Remove. (debug_make_function_type): Add arg_types and varargs parameters. (debug_make_method_type): Add varargs parameter. (debug_get_parameter_types): Add pvarargs parameter. (debug_get_target_type): New function. (debug_write_type): In case DEBUG_KIND_FUNCTION, push argument types and pass count to function_type. In DEBUG_KIND_METHOD, use a signed int for the count, don't call ellipsis_type, and pass varargs to method_type. * stabs.c (struct stab_demangle_info): Add varargs field. (stab_demangle_argtypes): Add pvarargs parameter. Change all callers. (stab_demangle_args): Likewise. (stab_demangle_type): In case 'F', pick up argument types. * prdbg.c (pr_ellipsis_type): Remove. (pr_function_type): Add argcount and varargs parameters. (pr_method_type): Add varargs parameter. * ieee.c (ieee_ellipsis_type): Remove. (ieee_function_type): Add argcount and varargs parameters. (ieee_method_type): Add varargs parameter. Remove most of function body, and just call ieee_function_type.
1996-01-19 * debug.h (enum debug_type_kind): Add DEBUG_KIND_ILLEGAL.Ian Lance Taylor1-15/+33
(struct debug_write_fns): Add field ellipsis_type. Add id parameter to start_struct_type, start_class_type, and tag_type. (debug_make_ellipsis_type): Declare. (debug_find_named_type): Declare. (debug_get_type_kind): Declare. (debug_get_return_type): Declare. (debug_get_parameter_types): Declare. (debug_get_fields): Declare. (debug_get_field_type): Declare. * debug.c (struct debug_handle): Add fields class_id and base_id. (struct debug_class_type): Add field id. (struct debug_method_variant): Rename argtypes to physname. Change all uses. (debug_ellipsis_type): New static variable. (ELLIPSIS_P): New macro. (debug_make_ellipsis_type): New function. (debug_make_method_variant): Rename argtypes to physname. (debug_make_static_method_variant): Likewise. (debug_name_type): Always put types in the global namespace. (debug_find_named_type): New function. (debug_find_tagged_type): Treat DEBUG_KIND_ILLEGAL specially, rather than DEBUG_KIND_VOID. (debug_get_real_type): New static function. (debug_get_type_kind): New function. (debug_get_return_type): New function. (debug_get_parameter_types): New function. (debug_get_fields): New function. (debug_get_field_type): New function. (debug_write): Initialize base_id. (debug_write_type): Pass new id argument to tag_type. Handle DEBUG_KIND_ILLEGAL. Use id for DEBUG_KIND_STRUCT and DEBUG_KIND_UNION. Handle ellipsis for method arguments. (debug_write_class_type): Don't dereference kclass if it is NULL. Use id. * prdbg.c (pr_fns): Add pr_ellipsis_type. (pr_ellipsis_type): New static function. (pr_pointer_type): If this is a pointer to an array, parenthesize it correctly. (pr_start_struct_type): Add id parameter. (pr_start_class_type): Likewise. (pr_tag_type): Likewise. (pr_fix_visibility): Add the visibility to the top of the stack, not the second element on the stack. (pr_struct_field): Pop the stack before calling pr_fix_visibility. (pr_class_static_member): Likewise. (pr_class_start_method): Don't push a type, just set the method name in the type on the top of the stack. (pr_class_end_method): Don't pop the stack. (pr_class_method_variant): Rename argtypes parameter to physname. Append const and volatile rather than prepending them. Add a space after the physname. (pr_class_static_method_variant): Likewise. * ieee.c (ieee_fns): Add ieee_ellipsis_type. (ieee_define_named_type): Use DEBUG_KIND_ILLEGAL rather than DEBUG_KIND_VOID. (write_ieee_debugging_info): Likewise. (ieee_typdef): Likewise. (ieee_ellipsis_type): New static function. (ieee_start_struct_type): Add id parameter. (ieee_start_class_type): Likewise. (ieee_tag_type): Likewise. (ieee_class_method_variant): Rename name to physname. (ieee_class_static_method_variant): Likewise.
1996-01-11 * ieee.c (ieee_enum_type): Handle an undefined enum.Ian Lance Taylor1-9/+15
1996-01-08 * ieee.c: Add global function write_ieee_debugging_info and aIan Lance Taylor1-179/+2480
bunch of static functions and structs used to write out IEEE debugging information. * budbg.h (write_ieee_debugging_info): Declare. * ieee.c (struct ieee_type): Add pslot field. (enum builtin_types): Define. (ieee_builtin_type): For a pointer, return a pointer to the named type. Use enum values rather than numbers. (ieee_alloc_type): New static function. (ieee_read_type_index): Use ieee_alloc_type. (parse_ieee_bb): Likewise. (parse_ieee_ty): Likewise. Use ieee_builtin_type for array range, rather than making a new integer type. Store the new type in the slot, if there is one. (parse_ieee_atn): Treat ATN10 as defining a register variable. (ieee_regno_to_genreg): Rename from ieee_regno_to_gen. Change all callers. (ieee_genreg_to_regno): New static function.
1996-01-04 * ieee.c: New file with code to read IEEE debugging information.Ian Lance Taylor1-0/+2178
* budbg.h (parse_ieee): Declare. * rddbg.c (read_debugging_info): Handle IEEE flavour files. (read_ieee_debugging_info): New static function. * Makefile.in: Rebuild dependencies. (CFILES): Add ieee.c. (OBJDUMP_OBJS): Add ieee.o.