* unroll.c (find_splittable_givs): Don't split givs with a dest_reg
that was created by loop.
+Thu Nov 27 09:34:58 1997 Jason Merrill <jason@yorick.cygnus.com>
+
+ * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR.
+
+ * except.c (expand_start_all_catch): One more do_pending_stack_adjust.
+
Wed Nov 26 15:47:30 1997 Michael Meissner <meissner@cygnus.com>
* rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
* toplev.c (main): Complain about -gdwarfn.
+Tue Nov 25 22:43:30 1997 Jason Merrill <jason@yorick.cygnus.com>
+
+ * dwarfout.c (output_type): If finalizing, write out nested types
+ of types we've already written.
+
Tue Nov 25 20:32:24 1997 Michael Meissner <meissner@cygnus.com>
(patches originally from Geoffrey Keating)
* optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc.
* expr.h: Likewise.
+Sat Nov 22 18:58:20 1997 Jeffrey A Law (law@cygnus.com)
+
+ * pa-hpux10.h (NEW_HP_ASSEMBLER): Define.
+ * pa.h (LEGITIMATE_CONSTANT_P): Reject LABEL_REFs if not using
+ gas and not using the new HP assembler.
+
Fri Nov 21 15:20:05 1997 Jeffrey A Law (law@cygnus.com)
* Makefile.in (program_transform_cross_name): Clean up "-e" confusion.
#define MD_STARTFILE_PREFIX "/usr/ccs/lib/"
#endif
+/* hpux10 has the new HP assembler. It's still lousy, but it's a whole lot
+ better than the assembler shipped with older versions of hpux. */
+#define NEW_HP_ASSEMBLER
&& (reload_in_progress || reload_completed || ! symbolic_expression_p (X)))
/* Include all constant integers and constant doubles, but not
- floating-point, except for floating-point zero. */
+ floating-point, except for floating-point zero.
+ Reject LABEL_REFs if we're not using gas or the new HP assembler. */
+#ifdef NEW_HP_ASSEMBLER
#define LEGITIMATE_CONSTANT_P(X) \
((GET_MODE_CLASS (GET_MODE (X)) != MODE_FLOAT \
|| (X) == CONST0_RTX (GET_MODE (X))) \
&& !function_label_operand (X, VOIDmode))
+#else
+#define LEGITIMATE_CONSTANT_P(X) \
+ ((GET_MODE_CLASS (GET_MODE (X)) != MODE_FLOAT \
+ || (X) == CONST0_RTX (GET_MODE (X))) \
+ && (GET_CODE (X) != LABEL_REF || TARGET_GAS)\
+ && !function_label_operand (X, VOIDmode))
+#endif
/* Subroutine for EXTRA_CONSTRAINT.
type = type_main_variant (type);
if (TREE_ASM_WRITTEN (type))
- return;
+ {
+ if (finalizing && AGGREGATE_TYPE_P (type))
+ {
+ register tree member;
+
+ /* Some of our nested types might not have been defined when we
+ were written out before; force them out now. */
+
+ for (member = TYPE_FIELDS (type); member;
+ member = TREE_CHAIN (member))
+ if (TREE_CODE (member) == TYPE_DECL
+ && ! TREE_ASM_WRITTEN (TREE_TYPE (member)))
+ output_type (TREE_TYPE (member), containing_scope);
+ }
+ return;
+ }
/* If this is a nested type whose containing class hasn't been
written out yet, writing it out will cover this one, too. */
expand_internal_throw (entry->outer_context);
}
}
+ do_pending_stack_adjust ();
free (entry);
}
}
case RTL_EXPR:
case WITH_CLEANUP_EXPR:
case CLEANUP_POINT_EXPR:
+ case TRY_CATCH_EXPR:
return;
case SAVE_EXPR:
These @samp{-m} options are defined for the i386 family of computers:
+@table @code
@item -mcpu=@var{cpu type}
Assume the defaults for the machine type @var{cpu type} when scheduling
instructions. The choices for @var{cpu type} are: @samp{i386},