[multiple changes]

Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
	* config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
1998-09-15  Andrew MacLeod  <amacleod@cygnus.com>
	* cp/search.c (expand_indirect_vtbls_init): Mark temporary stack slots
	as used to prevent conflicts with virtual function tables.

From-SVN: r22424
This commit is contained in:
Andrew MacLeod 1998-09-15 11:03:03 +00:00 committed by Andrew Macleod
parent 11d09c08aa
commit 8a21007c94
4 changed files with 23 additions and 2 deletions

View File

@ -1,3 +1,7 @@
Tue Sep 15 13:53:59 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
Tue Sep 15 09:59:01 1998 Mark Mitchell <mark@markmitchell.com>
* integrate.c (copy_decl_list): Fix typo.

View File

@ -1109,9 +1109,10 @@ extern struct rtx_def *legitimize_address ();
#define LOAD_EXTEND_OP(MODE) ZERO_EXTEND
/* Nonzero if access to memory by bytes is no faster than for words.
Defining this results in worse code on the i960. */
Value changed to 1 after reports of poor bitfield code with g++.
Indications are that code is usually as good, sometimes better. */
#define SLOW_BYTE_ACCESS 0
#define SLOW_BYTE_ACCESS 1
/* We assume that the store-condition-codes instructions store 0 for false
and some other value for true. This is the value stored for true. */

View File

@ -1,3 +1,8 @@
1998-09-15 Andrew MacLeod <amacleod@cygnus.com>
* search.c (expand_indirect_vtbls_init): Mark temporary stack slots
as used to prevent conflicts with virtual function tables.
1998-09-14 Mark Mitchell <mark@markmitchell.com>
* pt.c (check_specialization_scope): Fix spelling error.

View File

@ -2657,6 +2657,17 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr)
{
tree type = BINFO_TYPE (binfo);
/* This function executes during the finish_function() segment,
AFTER the auto variables and temporary stack space has been marked
unused...If space is needed for the virtual function tables,
some of them might fit within what the compiler now thinks
are available stack slots... These values are actually initialized at
the beginnning of the function, so when the automatics use their space,
they will overwrite the values that are placed here. Marking all
temporary space as unavailable prevents this from happening. */
mark_all_temps_used();
if (TYPE_USES_VIRTUAL_BASECLASSES (type))
{
rtx fixup_insns = NULL_RTX;