* c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
(init_attributes): Add A_NO_LIMIT_STACK.
(decl_attributes): Handle A_NO_LIMIT_STACK.
* c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
* explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
Handle stack bounds checking.
* flags.h (flag_stack_check): Use the word 'probe' rather than
'check', because the flag doesn't actually cause any checking to
be done.
* function.c (expand_function_start): Set
current_function_limit_stack.
* function.h (struct function): Add limit_stack.
(current_function_limit_stack): Define.
* invoke.texi (Code Gen Options): Document new options.
* rtl.h: Declare stack_limit_rtx.
* toplev.c (stack_limit_rtx): New variable.
(decode_f_option): Handle new options -fstack-limit-register=REG,
-fstack-limit-symbol=IDENT, -fno-stack-limit.
(main): Add stack_limit_rtx as GC root.
* tree.h (DECL_NO_LIMIT_STACK): New macro.
(struct tree_decl): New member no_limit_stack.
* config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
stack_limit_rtx.
* config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
(conditional_trap+1): Get new mnemonic correct.
(conditional_trap+2): New pattern for DImode traps.
* config/m68k/m68k.c (output_function_prologue): Handle
stack_limit_rtx.
* config/m68k/m68k.md (trap): New insn.
(conditional_trap): New insn.
* md.texi (Standard Names): Document `trap' and
`conditional_trap'.
* optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
so a cc0 setter doesn't get emitted at some random place in the
function.
* config/i960/i960.md (trap): New insn.
(conditional_trap): New expander.
(conditional_trap+1, conditional_trap+2): New insns for signed
and unsigned cases.
* config/i960/i960.c (i960_function_prologue): Use
STARTING_FRAME_OFFSET. Handle stack_limit_rtx.
Co-Authored-By: Greg McGary <gkm@gnu.org>
From-SVN: r30771
* flags.h (warn_padded, warn_packed): Add global var decls.
* toplev.c (warn_padded, warn_packed): Add global var defns.
(W_options): Add warnings `-Wpacked' and `-Wpadded'.
* stor-layout.c (layout_record): Add local variable `type'
to hold often-used TREE_TYPE (field). Add local variable
`unpacked_align' to hold alignment that would be in force
if no `packed' attribute were present. Warn if `packed' attribute
is unnecessary, or even harmful. Warn when gcc inserts padding
to satisfy alignment requirements of members. Use NULL_TREE
when checking whether var_size is set.
* invoke.texi: Document new flags.
Co-Authored-By: Geoff Keating <geoffk@cygnus.com>
From-SVN: r30770
* java/lang/natString.cc (equalsIgnoreCase): return false if
anotherString is null.
* java/lang/Boolean.java (valueOf): return FALSE if argument is
null.
From-SVN: r30763
1999-12-02 Mike Karr <mkarr@mathworks.com>
* cccp.c (argdata): Added free_ptr member.
(macroexpand): Initialize free_ptr of each argument. When an
argument's buffers are freed, if the argument's free_ptr corresponds
to a buffer on the input stack, then return the free_ptr to that stack
frame, otherwise, free it.
(macarg): If an argument begins and ends on the same input stack level,
then transfer the free_ptr of that buffer to the argument in case
the stack is popped during the processing of a subsequent argument.
From-SVN: r30760
1999-12-02 Bryce McKinlay <bryce@albatross.co.nz>
* libjava/java/net/ServerSocket.java (ServerSocket): Bind to any
interface if bindAddr is null.
From-SVN: r30755
* config/sparc/sparc.md (movsf_const_intreg): Add constraints for
regclass' sake.
(movdf_const_intreg_sp32): Likewise. Prefer the memory load
alternative because setting up 64bit constant is usually costly,
especially when reload is in progress or completed.
(movdf_const_intreg_sp64): Likewise.
(movdf_const_intreg split): Fix building up constants when
HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
From-SVN: r30750
* combine.c (if_then_else_cond): Use const_true_rtx instead of
const1_rtx for return values in EQ/NE comparison against (const_int 0)
case.
From-SVN: r30749
* i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
(addsi3_carry): Likewise.
(sbbsi3_cc): Add "binary_operator_ok" to the condition.
(sbbsi3_carry): Likewise.
(mulsi3): Rewrite to expander, ensure that only one operand is memory.
(mulhi3): Likewise.
(test?i_1): Ensure that only one operand is memory.
(conditional move patterns): likewise.
(shift and rotate patterns): Rewrite to expander, add
"binary_operator_ok" to the condition.
From-SVN: r30747
* i386.c (ix86_expand_move): Never add clobbers to move patterns.
* i386.md (movsi_xor): New.
(movsi_or): New.
(movsi_1, movhi_1, movqi_1): Remove.
(movsi_2): Rename to movsi_1.
(movhi_2): Rename to movhi_1.
(movqi_2): Rename to movqi_1.
(movdi_1): Remove; remove splitter.
(movdi_2): Rename to movdi_1.
(divmodsi4 splitter): Do not emit clobbers for move patterns.
(long move peep2): Do not create QI or HI mode mov0s
(mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
From-SVN: r30741
Thu Nov 11 01:57:14 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (lookup_method_invoke): Use lang_printable_name to
reliably build the type name during error report. Fixes PR gcj/97.
From-SVN: r30739
1999-12-01 Jason Molenda (jsm@bugshack.cygnus.com)
* ChangeLog: Dummy commit to make sure the logging is working
right.
Oh, and test the PR system. PR other/4.
From-SVN: r30737
* c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
integer constant does not match the traditional type, limit the
warnings to cases where the base of the type is ten.
* invoke.texi (-Wtraditional): Document it.
From-SVN: r30730
* lcm.c (compute_laterin): Cast bb->aux to size_t not int.
(compute_nearerout): Likewise.
* ggc-page.c (ggc_page_print_statistics): Explicitly cast
size_t to unsigned long for formatting.
From-SVN: r30728
* config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
Allow the user to override call-used/fixed state of %g2-5
registers from the command line (with the exception of %g4 for
embedded model).
(REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
there is a higher chance of having a leaf function.
(MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
for ARCH64 which has %ccr register.
* config/sparc/sparc.md (return_losum_si, return_losum_di): New
patterns.
* config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
insn accept into delay slot any insn which does not use %[ol]
registers. Accept some LO_SUM and shift left by 1 for the normal
restore case.
(output_function_epilogue): Likewise.
(epilogue_renumber): Added argument which inhibits any renumbering
and just tests if the rtx does not use any %[ol] registers.
(output_return): Reflect above change.
From-SVN: r30727
* posix-threads.cc (_Jv_MutexInit): Use _Jv_PthreadGetMutex to get
mutex to initialize. Initialize `count' if required.
Fixes PR libgcj/98.
From-SVN: r30725