rtl.h (init_virtual_regs): New function.
* rtl.h (init_virtual_regs): New function. * emit-rtl.c (init_virtual_regs): Define. (insn_emit): Use it. * integrate.c (save_for_inline_copying): Likewise. From-SVN: r22563
This commit is contained in:
parent
a5f421658c
commit
59ec66dc6a
@ -1,3 +1,10 @@
|
||||
Wed Sep 23 22:32:31 1998 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* rtl.h (init_virtual_regs): New function.
|
||||
* emit-rtl.c (init_virtual_regs): Define.
|
||||
(insn_emit): Use it.
|
||||
* integrate.c (save_for_inline_copying): Likewise.
|
||||
|
||||
Wed Sep 23 16:22:01 1998 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* config/arm/thumb.h: The following patches were made by Jim Wilson:
|
||||
|
@ -3297,6 +3297,18 @@ gen_sequence ()
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Put the various virtual registers into REGNO_REG_RTX. */
|
||||
|
||||
void
|
||||
init_virtual_regs ()
|
||||
{
|
||||
regno_reg_rtx[VIRTUAL_INCOMING_ARGS_REGNUM] = virtual_incoming_args_rtx;
|
||||
regno_reg_rtx[VIRTUAL_STACK_VARS_REGNUM] = virtual_stack_vars_rtx;
|
||||
regno_reg_rtx[VIRTUAL_STACK_DYNAMIC_REGNUM] = virtual_stack_dynamic_rtx;
|
||||
regno_reg_rtx[VIRTUAL_OUTGOING_ARGS_REGNUM] = virtual_outgoing_args_rtx;
|
||||
regno_reg_rtx[VIRTUAL_CFA_REGNUM] = virtual_cfa_rtx;
|
||||
}
|
||||
|
||||
/* Initialize data structures and variables in this file
|
||||
before generating rtl for each function. */
|
||||
|
||||
@ -3339,11 +3351,7 @@ init_emit ()
|
||||
bzero ((char *) regno_reg_rtx, regno_pointer_flag_length * sizeof (rtx));
|
||||
|
||||
/* Put copies of all the virtual register rtx into regno_reg_rtx. */
|
||||
regno_reg_rtx[VIRTUAL_INCOMING_ARGS_REGNUM] = virtual_incoming_args_rtx;
|
||||
regno_reg_rtx[VIRTUAL_STACK_VARS_REGNUM] = virtual_stack_vars_rtx;
|
||||
regno_reg_rtx[VIRTUAL_STACK_DYNAMIC_REGNUM] = virtual_stack_dynamic_rtx;
|
||||
regno_reg_rtx[VIRTUAL_OUTGOING_ARGS_REGNUM] = virtual_outgoing_args_rtx;
|
||||
regno_reg_rtx[VIRTUAL_CFA_REGNUM] = virtual_cfa_rtx;
|
||||
init_virtual_regs ();
|
||||
|
||||
/* Indicate that the virtual registers and stack locations are
|
||||
all pointers. */
|
||||
|
@ -561,10 +561,7 @@ save_for_inline_copying (fndecl)
|
||||
regno_reg_rtx = reg_map;
|
||||
|
||||
/* Put copies of all the virtual register rtx into the new regno_reg_rtx. */
|
||||
regno_reg_rtx[VIRTUAL_INCOMING_ARGS_REGNUM] = virtual_incoming_args_rtx;
|
||||
regno_reg_rtx[VIRTUAL_STACK_VARS_REGNUM] = virtual_stack_vars_rtx;
|
||||
regno_reg_rtx[VIRTUAL_STACK_DYNAMIC_REGNUM] = virtual_stack_dynamic_rtx;
|
||||
regno_reg_rtx[VIRTUAL_OUTGOING_ARGS_REGNUM] = virtual_outgoing_args_rtx;
|
||||
init_virtual_regs ();
|
||||
|
||||
/* Likewise each label rtx must have a unique rtx as its copy. */
|
||||
|
||||
|
@ -1310,6 +1310,7 @@ extern void add_insn_after PROTO ((rtx, rtx));
|
||||
extern void reorder_insns_with_line_notes PROTO ((rtx, rtx, rtx));
|
||||
extern void emit_insn_after_with_line_notes PROTO ((rtx, rtx, rtx));
|
||||
extern enum rtx_code classify_insn PROTO ((rtx));
|
||||
extern void init_virtual_regs PROTO ((void));
|
||||
extern rtx emit PROTO ((rtx));
|
||||
/* Query and clear/ restore no_line_numbers. This is used by the
|
||||
switch / case handling in stmt.c to give proper line numbers in
|
||||
|
10
gcc/testsuite/g++.old-deja/g++.other/local2.C
Normal file
10
gcc/testsuite/g++.old-deja/g++.other/local2.C
Normal file
@ -0,0 +1,10 @@
|
||||
// Build don't link:
|
||||
// Special g++ Options: -O2
|
||||
|
||||
void f ()
|
||||
{
|
||||
struct Init {
|
||||
Init () {
|
||||
}
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user