aboutsummaryrefslogtreecommitdiff
path: root/gcc/real.h
AgeCommit message (Collapse)AuthorFilesLines
2000-08-14configure.in (ia64-*): Set float_format for i386 long double.Richard Henderson1-0/+4
* configure.in (ia64-*): Set float_format for i386 long double. * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT as we would for i386 XFmode. (PUT_REAL): Likewise. (endian, ereal_atof, real_value_truncate): Likewise. (ereal_isneg, toe64, etens, make_nan): Likewise. * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise. * config/ia64/ia64-protos.h: Update. * config/ia64/ia64.c (general_tfmode_operand): New. (destination_tfmode_operand): New. (tfreg_or_fp01_operand): New. (ia64_split_timode): New. (spill_tfmode_operand): New. (ia64_expand_prologue): Use TFmode not XFmode. (ia64_expand_epilogue): Likewise. (ia64_function_arg): Likewise. (ia64_function_arg_advance): Likewise. (ia64_return_in_memory): Likewise. (ia64_function_value): Likewise. (ia64_print_operand): Likewise. (ia64_register_move_cost): Set GR<->FR to 5. (ia64_secondary_reload_class): Get GR for TImode memory op. * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove. (ROUND_TYPE_ALIGN): Remove. (LONG_DOUBLE_TYPE_SIZE): Set to 128. (INTEL_EXTENDED_IEEE_FORMAT): Define. (HARD_REGNO_NREGS): Use TFmode, not XFmode. (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs. (MODES_TIEABLE_P): Use TFmode, not XFmode. (CLASS_MAX_NREGS): Likewise. (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks. (PREDICATE_CODES): Update. * config/ia64/ia64.md (movti): New. (movti_internal): Use a clobber for memory alternatives. (reload_inti, reload_outti): New. (movsfcc_astep): Predicate properly. (movdfcc_astep): Likewise. (movxf): Remove. (movtf): New. (extendsftf2, extenddftf2): New. (trunctfsf2, trunctfdf2): New. (floatditf2, fix_trunctfdi2): New. (floatunsditf2, fixuns_trunctfdi2): New. (addtf3, subtf3, multf3, abstf2): New. (negtf2, nabstf2, mintf3, maxtf3): New. (maddtf3, msubtf3, nmultf3, nmaddtf3): New. (cmptf): New. (fr_spill): Use TFmode, not XFmode. (fr_restore): Likewise. * config/ia64/lib1funcs.asm (__divtf3): New. * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it. From-SVN: r35689
2000-08-05[multiple changes]Zack Weinberg1-17/+0
2000-08-04 Andreas Schwab <schwab@suse.de> * cppmain.c (cb_def_pragma): Skip the first two tokens from the token list, which are always `#' and `pragma'. 2000-08-04 Zack Weinberg <zack@wolery.cumb.org> * tree.c (tree_expr_nonnegative_p): Move to... * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR. (rtl_expr_nonnegative_p): New. * tree.h: Add prototype for rtl_expr_nonnegative_p. * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM, CONST_DOUBLE_CHAIN: Move to... * rtl.h: ...here. Use XCINT/XCEXP. * Makefile.in: Remove toplev.o from OBJS. Add rule to make libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND to VOL_FILES. * objc/Make-lang.in (cc1obj): Link with $(BACKEND). ch: * Make-lang.in (cc1chill): Depend on $(BACKEND), not stamp-objlist. * Makefile.in (cc1chill): Link with $(BACKEND). Define BACKEND, eliminate C_OBJS (was commented out), OBJS, OBJDEPS. cp: * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. (cc1plus): Link with $(BACKEND) and $(C_OBJS). f: * Make-lang.in (f771): Depend on $(BACKEND), not stamp-objlist. * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS. (f771): Link with $(BACKEND). java: * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist. * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS. (jc1): Link with $(BACKEND). (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND). From-SVN: r35501
2000-07-17real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE instead ↵Jan Hubicka1-5/+5
of MAX_LONG_DOUBLE_TYPE_SIZE to decide output... * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format. From-SVN: r35105
2000-06-11[multiple changes]Jeff Law1-1/+1
2000-06-09 Rodney Brown <RodneyBrown@mynd.com> * mcore-protos.h: discards const warning removal. * mcore.c: discards const warning removal. 2000-06-09 Kazu Hirata <kazu@hxi.com> * config/h8300/lib1funcs.asm: Declare the machine architecture at the beginning of the file. 2000-06-09 J. David Anglin <dave@hiauly1.hia.nrc.ca> * real.h: Add prototype for ldexp. From-SVN: r34496
2000-04-12Stephen L Moshier <moshier@mediaone.net>Stephen L Moshier1-0/+5
* real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment. * real.c (toe64): Revert previous change. From-SVN: r33097
2000-03-25* Rework fields used to describe positions of bitfields andRichard Kenner1-1/+1
modify sizes to be unsigned and use HOST_WIDE_INT. * alias.c (reg_known_value_size): Now unsigned. * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position. (really_start_incremental_init): Use bitsize_zero_node. (push_init_level, pop_init_level, output_init_element): Likewise. Use bitsize_unit_node and bitsize_one_node. (output_pending_init_elements, process_init_element): Likewise. * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned. (make_extraction): Position and length HOST_WIDE_INT and unsigned HOST_WIDE_INT, respectively. (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT. (num_sign_bit_copies): Returns unsigned. BITWIDTH now unsigned; rework arithmetic. Remove recursive call from arg to MAX. (combine_instructions, init_reg_last_arrays): NREGS now unsigned. (setup_incoming_promotions, can_combine_p, try_combine, simplify_set): REGNO now unsigned. (set_nonzero_bit_and_sign_copies): NUM now unsigned. (find_split_point, expand_compound_operation, make_extraction): LEN now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT. (make_field_assignment): Likewise. (combine_simplify_rtx): Add cast. (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic. (force_to_mode): WIDTH now unsigned; add cast. (if_then_else_cond): SIZE now unsigned. (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned. (extended_count): Now returns unsigned. (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT. Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned. (simplify_comparison): MODE_WIDTH now unsigned. (update_table_tick): REGNO and ENDREGNO now unsigned; new var R. (mark_used_regs_combine): Likewise; rework arithmetic. (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned. (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise. (record_promoted_value): REGNO now unsigned. (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned. (get_last_value): REGNO now unsigned. (use_crosses_set_p): REGNO and ENDREGNO now unsigned. (reg_dead_regno, reg_dead_endregno): Now unsigned. (remove_death): Arg REGNO now unsigned. (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned. (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO now unsigned. * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned. * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned. (struct cse_reg_info): REGNO now unsigned. (cached_regno): Now unsigned. (REGNO_QTY_VALID_P): Add cast. (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned. (remove_invalid_regs): Likewise. (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned as are variables END and I. (get_cse_reg_info, insert): Likewise. (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned. (canon_hash): Likewise. (insert_regs, lookup_for_remove): REGNO now unsigned. (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned. New variable RN. * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0. * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast. * emit-rtl.c (subreg_realpart_p): Add cast. (operand_subword): Arg I is now unsigned as is var PARTWORDS. (operand_subword_force): Arg I is now unsigned. * except.c (eh_regs): Variable I is now unsigned. * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT. * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT; length is unsigned HOST_WIDE_INT; likewise for internal variables. (store_split_bit_field, extract_fixed_bit_field): Likewise. (extract_split_bit_field, store_bit_field, extract_bit_field): Likewise. * expr.c (store_constructor_fields, store_constructor, store_field): Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT. (expand_assignment, expand_expr, expand_expr_unaligned): Likewise. (do_jump): Likewise. (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces): MAX_SIZE is now unsigned. (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned. (emit_group_store): Likewise. (emit_move_insn): I now unsigned. (store_constructor): Use host_integerp, tree_low_cst, and bitsize_unit_node. (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT. Rework all calculations to use trees and new fields. * expr.h (promoted_input_arg): Regno now unsigned. (store_bit_field, extract_bit_field): Adjust types of pos and size. (mark_seen_cases): Arg is HOST_WIDE_INT. * flow.c (verify_wide_reg_1): REGNO now unsigned. * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT; precisions and alignments are unsigned. (optimize_bit_field_compare, fold_truthop): Likewise. (int_const_binop): Adjust threshold for size_int_type_wide call. (fold_convert): Likewise. (size_int_type_wide): Make table larger and fix thinko that only had half of table used. (all_ones_mask_p, fold): Precisions are unsigned. * function.c (put_reg_info_stack): REGNO is unsigned. (instantiate_decl): Size is HOST_WIDE_INT. (instantiate_virtual_regs): I is unsigned. (assign_parms): REGNO, REGNOI, and REGNOR are unsigned. (promoted_input_arg): REGNO is unsigned. * function.h (struct function): x_max_parm_reg is now unsigned. * gcse.c (max_gcse_regno): Now unsigned. (struct null_pointer_info): min_reg and max_reg now unsigned. (lookup_set, next_set): REGNO arg now unsigned. (compute_hash_table): REGNO and I now unsigned. (handle_avail_expr): regnum_for_replacing now unsigned. (cprop_insn): REGNO now unsigned. (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned. * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case. * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned. * hard-reg-set.h (reg_class_size): Now unsigned. * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO. * jump.c (mark_modified_reg): I now unsigned; add cast. (rtx_equal_for_thread_p): Add cast. * loop.c (max_reg_before_loop): Now unsigned. (struct_movable): REGNO now unsigned. (try_copy_prop): REGNO arg unsigned. (regs_match_p): XN and YN now unsigned. (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned. (strength_reduce): Likewise; NREGS also unsigned. (first_increment_giv, last_increment_giv unsigned): Now unsigned. * loop.h (struct iv_class): REGNO now unsigned. (max_reg_before_loop, first_increment_giv, last_increment_giv): Now unsigned. * machmode.h (mode_size, mode_unit_size): Now unsigned. (mode_for_size, smallest_mode_for_size): Pass size as unsigned. * optabs.c (expand_binop): I and NWORDS now unsigned. (expand_unop): I now unsigned. * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET. * real.c (significand_size): Now returns unsigned. * real.h (significand_size): Likewise. * regclass.c (reg_class_size): Now unsigned. (choose_hard_reg_mode): Both operands now unsigned. (record_reg_classes): REGNO and NR now unsigned. (reg_scan): NREGS now unsigned. (reg_scan_update): old_max_regno now unsigned. (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned. * reload.c (find_valid_class): BEST_SIZE now unsigned. (find_dummy_reload): REGNO, NWORDS, and I now unsigned. (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned. Likewise for variable R. (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned, as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R. (find_equiv_reg): Add casts. (regno_clobbered_p): Arg REGNO now unsigned. * reload.h (struct reload): NREGS now unsigned. (refers_to_regno_for_reload_p): Regno args are unsigned. (regno_clobbered_p): Likewise. * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned. (compute_use_by_pseudos): REGNO now unsigned. (find_reg): I and J now unsigned, new variable K, and change loop variables accordingly; THIS_NREGS now unsigned. (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned. (spill_hard_reg): REGNO arg now unsigned; add casts. (forget_old_reloads_1): REGNO, NR, and I now unsigned. (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned. (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO, END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned. (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned. (choose_reload_regs): MAX_GROUP_SIZE now unsigned. (emit_reload_insns): REGNO now unsigned. (reload_cse_move2add): Add cast. (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO and rework loop. * resource.c (mark_referenced_resources, mark_set_resources): New variable R; REGNO and LAST_REGNO now unsigned. (mark_target_live_regs): J and REGNO now unsigned. * rtl.c (mode_size, mode_unit_size): Now unsigned. * rtl.h (union rtunion_def): New field rtuint. (XCUINT): New macro. (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT. (operand_subword, operand_subword_force): Word number is unsigned. (choose_hard_reg_mode): Operands are unsigned. (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned. (find_regno_note, find_regno_fusage, replace_regs): Likewise. (regno_use_in, combine_instructions, remove_death): Likewise. (reg_scan, reg_scan_update): Likewise. (extended_count): Return is unsigned. * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I, INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO. (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned. (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned. (reg_reg_last_1): FIRS and LAST now unsigned. (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned. (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO now unsigned. (find_regno_note, regno_use_in): Arg REGNO now unsigned. (find_regno_fusage): Likewise; also var REGNOTE now unsigned. (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned. (replace_regs): Arg NREGS now unsigned. * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0. * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned. (simplify_binary_operation): Likewise. (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and THIS_LAST now unsigned. (cselib_record_set): Add cast. * ssa.c (ssa_max_reg_num): Now unsigned. (rename_block): REGNO now unsigned. * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT; sizes now unsigned. (all_cases_count): Just return -1 not -2. COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT. Rework tests to use trees whenever possible. Use host_integerp and tree_low_cst. (mark_seen_cases): COUNT arg now HOST_WIDE_INT; Likewise variable NEXT_NODE_OFFSET; XLO now unsigned. (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT. * stor-layout.c (mode_for_size): SIZE arg now unsigned. (smallest_mode_for_size): Likewise. (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT. KNOWN_ALIGN is now an alignment, so simplify code. Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type. (start_record_layout): Renamed from new_record_layout_info. Update to new fields. (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far): New functions. (place_union_field): Renamed from layout_union_field. Update to use new fields in rli. (place_field): Renamed from layout_field. Major rewrite to use new fields in rli; pass alignment to layout_decl. (finalize_record_size): Rework to use new fields in rli and handle union. (compute_record_mode): Rework to simplify and to use new DECL fields. (finalize_type_size): Make rounding more consistent. (finish_union_layout): Deleted. (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either. (layout_type, case RECORD_TYPE): Call new function names. (initialize_sizetypes): Set TYPE_IS_SIZETYPE. (set_sizetype): Set TYPE_IS_SIZETYPE earlier. (get_best_mode): UNIT is now unsigned; remove casts. * tree.c (bit_position): Compute from new fields. (byte_position, int_byte_position): New functions. (print_type_hash_statistics): Cast to remove warning. (build_range_type): Use host_integerp and tree_low_cst to try to hash. (build_index_type): Likewise; make subtype of sizetype. (build_index_2_type): Pass sizetype to build_range_type. (build_common_tree_nodes): Use size_int and bitsize_int to initialize nodes; add bitsize_{zero,one,unit}_node. * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK. (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise. (DECL_PACKED, DECL_BIT_FIELD): Likewise. (DECL_FIELD_BITPOS): Deleted. (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields. (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK. (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise. (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise. (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise. (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise. (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise. (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK. (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK. (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise. (DECL_ALIGN): Adjust to new field in union. (DECL_OFFSET_ALIGN): New field. (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK. (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK. (union tree_decl): Add struct for both aligns. (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}. (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added. (struct record_layout_info): Rework fields to have offset alignment and byte and bit position. (start_record_layout, place_field): Renamed from old names. (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls. (byte_position, int_byte_position): Likewise. (get_inner_reference): Change types of position and length. * unroll.c (unroll_loop): New variable R; use for some loops. MAX_LOCAL_REGNUM and MAXREGNUM now unsigned. (calculate_giv_inc): Arg REGNO now unsigned. (copy_loop_body): REGNO and SRC_REGNO now unsigned. * varasm.c (assemble_variable): Clean up handling of size using host_integerp and tree_low_cst. (decode_addr_const): Use byte, not bit, position. (output_constructor): bitpos and offsets are HOST_WIDE_INT; use tree_low_cst and int_bit_position. * objc/objc-act.c (build_ivar_list_initializer): Use byte_position. * ch/actions.c (check_missing_cases): BYTES_NEEDED is HOST_WIDE_INT. * ch/typeck.c (expand_constant_to_buffer): Use int_byte_position. (extract_constant_from_buffer): Likewise. * cp/class.c (build_vbase_pointer_fields): layout_field now place_field. (get_vfield_offset): Use byte_position. (set_rtti_entry): Set OFFSET to ssizetype zero. (get_binfo_offset_as_int): Deleted. (dfs_record_base_offsets): Use tree_low_cst. (dfs_search_base_offsets): Likewise. (layout_nonempty_base_or_field): Reflect changes in RLI format and call byte_position. (layout_empty_base): Convert offset to ssizetype. (build_base_field): use rli_size_unit_so_far. (dfs_propagate_binfo_offsets): Do computation in proper type. (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. (layout_class_type): Reflect changes in RLI names and fields. (finish_struct_1): Set DECL_FIELD_OFFSET. * cp/dump.c (dequeue_and_dump): Call bit_position. * cp/expr.c (cplus_expand_constant): Use byte_position. * cp/rtti.c (expand_class_desc): Use bitsize_one_node. * cp/typeck.c (build_component_addr): Use byte_position and don't special case for zero offset. * f/com.c (ffecom_tree_canonize_ptr_): Use bitsize_zero_node. (ffecom_tree_canonize_ref_): Likewise. * java/class.c (make_field_value): Use byte_position. * java/expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position. (java_array_data_offset): Likewise. * java/java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to bzero call. From-SVN: r32742
2000-03-06real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE if not ↵Jakub Jelinek1-4/+7
defined. * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE if not defined. Use MAX_LONG_DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses. * real.c: Likewise. * gengenrtl.c: Likewise. * print-rtl.c: Likewise. * rtl.c: Likewise. * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128. * config/sparc/sol2.h (TARGET_DEFAULT): Likewise. * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise. * config/sparc/linux64 (TARGET_DEFAULT): Likewise. (SUBTARGET_SWITCHES): Define. (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling with -mlong-double-128. (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. (MAX_LONG_DOUBLE_TYPE_SIZE): Define. (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. (CC1_SPEC): Include -mlong-double-{64,128} as needed. * config/sparc/linux.h (SUBTARGET_SWITCHES): Define. (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling with -mlong-double-128. (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. (MAX_LONG_DOUBLE_TYPE_SIZE): Define. (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. * config/sparc/sparc.h (MASK_LONG_DOUBLE_128, TARGET_LONG_DOUBLE_128): Define. * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove. * config/sparc/sparc.c (sparc_override_options): Disallow 64bit long double on TARGET_ARCH64. From-SVN: r32367
2000-02-26Fix copyrights.Jeff Law1-1/+2
From-SVN: r32179
2000-01-17machmode.h: PROTO -> PARAMS.Kaveh R. Ghazi1-41/+41
* machmode.h: PROTO -> PARAMS. * mbchar.h: Likewise. * mips-tdump.c: Likewise. * mips-tfile.c: Likewise. * optabs.c: Likewise. * output.h: Likewise. * prefix.c: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * real.h: Likewise. * recog.c: Likewise. * recog.h: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * regs.h: Likewise. From-SVN: r31459
2000-01-11Update copyrights for last checkin.Kaveh Ghazi1-1/+1
From-SVN: r31309
2000-01-10Makefile.in (optabs.o): Depend on real.hKaveh R. Ghazi1-1/+1
* Makefile.in (optabs.o): Depend on real.h (resource.o): Depend on insn-attr.h * builtins.c (result_vector): Wrap prototype in macro conditions governing definition and use. * c-common.c: Include tm_p.h. * c-lex.c: Likewise. * elfos.h: Constify a char*. * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length. (get_attr_length, shorten_branches, profile_after_prologue): Mark parameter with ATTRIBUTE_UNUSED. * fold-const.c (exact_real_inverse): Wrap variable `i' in CHECK_FLOAT_VALUE. * haifa-sched.c (schedule_insns): Mark parameter with ATTRIBUTE_UNUSED. * optabs.c: Include real.h. * real.h (ereal_atof): Add prototype arguments. * resource.c: Include insn-attr.h. * sdbout.c (sdbout_queue_anonymous_type, sdbout_dequeue_anonymous_types): Wrap in macro SDB_ALLOW_FORWARD_REFERENCES. (sdbout_init, sdbout_start_new_source_file): Mark parameter with ATTRIBUTE_UNUSED. * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return. * stupid.c: Include tm_p.h. * tree.c (real_value_from_int_cst): Mark parameter with ATTRIBUTE_UNUSED. cp: * lex.c: Include tm_p.h. ch: * lex.c: Include tm_p.h. From-SVN: r31308
1999-09-06Merge in gcc2-ss-010999Jeff Law1-10/+18
From-SVN: r29150
1999-08-31rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and bounds- check RTL ↵Zack Weinberg1-1/+1
accesses if --enable-checking. 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com> * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and bounds- check RTL accesses if --enable-checking. (RTVEC_ELT): Bounds check if --enable-checking. (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate. (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and GET_NUM_ELEM. (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes. (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS. (NOTE_SOURCE_FILE): Use X0STR. (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES, MEM_ALIAS_SET): Use X0INT. (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN): Use X0EXP. * real.h (CONST_DOUBLE_CHAIN): Use X0EXP. * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT. (rtl_check_failed_bounds, rtl_check_failed_type1, rtl_check_failed_type2, rtvec_check_failed_bounds): New functions. (fancy_abort): Fix comment. * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT. (cse_insn): Decrement LABEL_NUSES for jump target before deleting jump insn. * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1. * final.c (alter_subreg): Compute regno before changing x to REG; set REGNO(x) after changing it. * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION notes containing CONST_INTs. (delete_eh_regions): Use NOTE_EH_HANDLER. * function.c (put_reg_into_stack): Make reg a MEM before initializing it. (fixup_var_refs_insns): Save REG_NOTES (insn) in case we delete insn. (gen_mem_addressof): Make reg a MEM before initializing it. * integrate.c (copy_rtx_and_substitute): Copy '0' slots with X0WINT. * local-alloc.c (update_equiv_regs): Zap REG_NOTES before deleting an insn, not after. (block_alloc): Only look at PATTERN(insn) if we have to, and only if it's format class 'i'. * loop.c (check_dbra_loop): Check bl->biv->add_val is a CONST_INT before using its INTVAL. * print-rtl.c (print_rtx): Use X0STR. * regmove.c (fixup_match_1): Don't look at PATTERN of non-class-'i' insn chain elements. * reload.c (loc_mentioned_in_p): Take address of in->fld[1].rtx directly. * reload1.c (reload): Change reg to a MEM before initializing it. * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which have no names. * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo. From-SVN: r29008
1999-03-06c-aux-info.c (data_type, [...]): Qualify a char* with the `const' keyword.Kaveh R. Ghazi1-2/+2
* c-aux-info.c (data_type, affix_data_type, gen_decl, gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type): Qualify a char* with the `const' keyword. * c-common.c (declare_hidden_char_array, add_attribute, if_elt, declare_function_name, decl_attributes, format_char_info, check_format_info, binary_op_error): Likewise. * cexp.y (yyerror, error, pedwarn, warning, token): Likewise. * gcse.c (dump_hash_table): Likewise. * integrate.c (function_cannot_inline_p): Likewise * optabs.c: Include insn-config.h earlier. (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs): Qualify a char* with the `const' keyword. * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe, asctoeg, mtherr, ereal_atof): Likewise. * real.h (ereal_atof): Likewise. * sbitmap.c (dump_sbitmap_vector): Likewise. * sbitmap.h (dump_sbitmap_vector): Likewise. * stmt.c (nesting, n_occurrences, expand_start_case): Likewise. * toplev.c (rest_of_compilation): Likewise. * tree.h (function_cannot_inline_p, expand_start_case): Likewise. From-SVN: r25614
1999-01-06More copyright fixes. Oh what fun.Jeff Law1-1/+1
From-SVN: r24536
1998-12-01c-common.c (declare_function_name): Declare predefinied variable `__func__'.Ulrich Drepper1-1/+15
* c-common.c (declare_function_name): Declare predefinied variable `__func__'. * c-decl.c (flag_isoc9x): Set to 1 by default. (c_decode_option): Handle -std= option. Remove -flang-isoc9x. (grokdeclarator): Always emit warning about implicit int for ISO C 9x. * c-parse.in: Allow constructors in ISO C 9x. Rewrite designator list handling. Allow [*] parameters. Don't warn about comma at end of enum definition for ISO C 9x. * cccp.c (c9x): New variable. (rest_extension): New variable. (print_help): Document new -std= option. (main): Recognize -std= option. Set c9x appropriately. (create_definition): Recognize ISO C 9x vararg macros. * gcc.c (default_compilers): Adjust specs for -std options. (option_map): Add --std. (display_help): Document -std. * toplev.c (documented_lang_options): Add -std and remove -flang-isoc9x. * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF or REAL_VALUE_HTOF based on base of the constants. * fold-const.c (real_hex_to_f): New function. Replacement function for hex FP conversion if REAL_ARITHMETIC is not defined. * real.c (asctoeg): Add handling of hex FP constants. * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or real_hex_to_f. Co-Authored-By: Richard Henderson <rth@cygnus.com> Co-Authored-By: Stephen L Moshier <moshier@world.std.com> From-SVN: r24049
1998-07-06print-rtl.c (print_rtx): Display the real-value equivalent of a const_double ↵Richard Henderson1-16/+26
when easy. * print-rtl.c (print_rtx): Display the real-value equivalent of a const_double when easy. * real.h (REAL_VALUE_TO_TARGET_SINGLE): Use a union to pun types. Zero memory first for predictability. (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. * varasm.c (immed_real_const_1): Notice width of H_W_I == double. From-SVN: r20972
1998-05-05* Check in merge from gcc2. See ChangeLog.12 for details.Jeff Law1-0/+1
From-SVN: r19553
1997-11-13patch from paul eggert to fix -0.0/0.0 confusion that breaks glibcPaul Eggert1-0/+7
* real.h (REAL_VALUES_IDENTICAL): New macro. * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. * fold-const.c (operand_equal_p): Don't consider -0.0 to be identical to 0.0. * tree.c (simple_cst_equal): Don't consider -0.0 to have the same tree structure as 0.0. * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL macro instead of doing it by hand. From-SVN: r16472
1997-11-02Update mainline egcs to gcc2 snapshot 971021.Jeff Law1-8/+7
From-SVN: r16278
1997-08-19expr.h, real.h: Finish prototyping.H.J. Lu1-5/+17
* expr.h, real.h: Finish prototyping. Some of hj's prototyping stuff after minor formatting fixes. From-SVN: r14846
1997-08-12version.c: Bump version to "gcc-3.0.0 970802 experimental".Jeffrey A Law1-0/+8
* version.c: Bump version to "gcc-3.0.0 970802 experimental". * gcc.info*: Rebuilt. * COPYING.g77, README.g77: New files. * real.c (ereal_unto_float, ereal_unto_double): New functions. * real.h (ereal_unto_float, ereal_unto_double): Declare them. (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define. Get g77 to work with gcc3. From-SVN: r14776
1996-10-23(exact_real_inverse): Declare.Richard Kenner1-0/+3
From-SVN: r13003
1996-04-14(ereal_from_{int,uint}): Add new arg, MODE.Richard Kenner1-6/+9
From-SVN: r11764
1995-06-15Update FSF address.Richard Kenner1-1/+2
From-SVN: r9964
1994-11-16Check target endianness at run time, not compile timeIan Lance Taylor1-10/+10
From-SVN: r8470
1994-06-14Cast pointer operands to bzero, bcopy, and bcmp to (char *).Richard Kenner1-1/+1
From-SVN: r7472
1994-05-30(significand_size): Declare.Richard Kenner1-0/+2
From-SVN: r7388
1994-05-16(REAL_VALUE_FROM_TARGET_SINGLE, .._DOUBLE): Change arg from long toRichard Kenner1-4/+5
HOST_WIDE_INT. From-SVN: r7311
1994-04-21Add prototypes to declarations of functions in real.c.Richard Kenner1-12/+31
(immed_real_const_1): Move declaration from rtl.h. From-SVN: r7108
1993-10-13(FLOAT_WORDS_BIG_ENDIAN): New macro.Richard Kenner1-6/+29
(HOST_FLOAT_WORDS_BIG_ENDIAN): Likewise, for host. (REAL_VALUE_TO_TARGET_DOUBLE (default version)): Use them. (efixi, efixui): Return HOST_WIDE_INT. (REAL_VALUE_FROM_INT): Cast inputs to HOST_WIDE_INT. From-SVN: r5775
1993-08-13(REAL_VALUE_TYPE): Define array at least 20 bytes wide if ↵Jim Wilson1-13/+42
LONG_DOUBLE_TYPE_SIZE is 128 bits. (REAL_VALUE_TYPE): Define array at least 20 bytes wide if LONG_DOUBLE_TYPE_SIZE is 128 bits. (etartdouble): Declare and use for REAL_VALUE_TO_TARGET_LONG_DOUBLE when long double is TFmode. (REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX): Must always round towards zero. From-SVN: r5152
1993-06-13(REAL_VALUE_FROM_TARGET_SINGLE): New macro.Richard Stallman1-1/+5
(REAL_VALUE_FROM_TARGET_DOUBLE): Likewise. From-SVN: r4671
1993-05-09(REAL_VALUES_LESS): True if return value of ereal_cmp is -1.Richard Stallman1-1/+1
From-SVN: r4402
1993-03-31If REAL_ARITHMETIC is defined or if LONG_DOUBLE_TYPE_SIZE is 96...Richard Stallman1-14/+139
If REAL_ARITHMETIC is defined or if LONG_DOUBLE_TYPE_SIZE is 96, then define REAL_VALUE_ macros to invoke functions in real.c. (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): New macros truncate toward zero to integer value but return REAL_VALUE_TYPE. (REAL_VALUE_TO_DECIMAL): New macro defaults to fprintf if no REAL_ARITHMETIC, otherwise uses real.c for binary to decimal conversion. Used in ASM_OUTPUT_ macros. From-SVN: r3934
1992-07-06entered into RCSCharles Hannum1-4/+4
From-SVN: r1466
1992-06-22*** empty log message ***Richard Stallman1-0/+3
From-SVN: r1232
1992-05-27*** empty log message ***Richard Stallman1-0/+28
From-SVN: r1097
1992-03-28*** empty log message ***Richard Stallman1-1/+6
From-SVN: r604
1992-03-19*** empty log message ***Tom Wood1-0/+5
From-SVN: r523
1992-02-03*** empty log message ***Richard Stallman1-1/+2
From-SVN: r273
1991-12-01Initial revisionRichard Stallman1-0/+192
From-SVN: r94