i386.c (struct machine_function): Add new fields for PIC stuff.

* i386.c (struct machine_function): Add new fields for PIC stuff.
        (save_386_machine_status): Fix argument to xmalloc.  Save pic_label_rtx
        and pic_label_name.
        (restore_386_machine_status): Corresponding changes.
        (clear_386_stack_locals): Also clear pic_label_rtx and pic_label_name.

From-SVN: r18237
This commit is contained in:
Jeffrey A Law 1998-02-25 22:39:34 +00:00 committed by Jeff Law
parent 9b899da087
commit b94b5c16dd
2 changed files with 19 additions and 1 deletions

View file

@ -1,3 +1,11 @@
Wed Feb 25 23:40:54 1998 Jeffrey A Law (law@cygnus.com)
* i386.c (struct machine_function): Add new fields for PIC stuff.
(save_386_machine_status): Fix argument to xmalloc. Save pic_label_rtx
and pic_label_name.
(restore_386_machine_status): Corresponding changes.
(clear_386_stack_locals): Also clear pic_label_rtx and pic_label_name.
Wed Feb 25 01:31:40 1998 Jeffrey A Law (law@cygnus.com)
* c-parse.y (undeclared variable error): Tweak error message

View file

@ -4185,6 +4185,8 @@ static rtx i386_stack_locals[(int) MAX_MACHINE_MODE][MAX_386_STACK_LOCALS];
struct machine_function
{
rtx i386_stack_locals[(int) MAX_MACHINE_MODE][MAX_386_STACK_LOCALS];
rtx pic_label_rtx;
char pic_label_name[256];
};
/* Functions to save and restore i386_stack_locals.
@ -4195,9 +4197,12 @@ void
save_386_machine_status (p)
struct function *p;
{
p->machine = (struct machine_function *) xmalloc (sizeof i386_stack_locals);
p->machine
= (struct machine_function *) xmalloc (sizeof (struct machine_function));
bcopy ((char *) i386_stack_locals, (char *) p->machine->i386_stack_locals,
sizeof i386_stack_locals);
p->machine->pic_label_rtx = pic_label_rtx;
bcopy (pic_label_name, p->machine->pic_label_name, 256);
}
void
@ -4206,7 +4211,10 @@ restore_386_machine_status (p)
{
bcopy ((char *) p->machine->i386_stack_locals, (char *) i386_stack_locals,
sizeof i386_stack_locals);
pic_label_rtx = p->machine->pic_label_rtx;
bcopy (p->machine->pic_label_name, pic_label_name, 256);
free (p->machine);
p->machine = NULL;
}
/* Clear stack slot assignments remembered from previous functions.
@ -4224,6 +4232,8 @@ clear_386_stack_locals ()
for (n = 0; n < MAX_386_STACK_LOCALS; n++)
i386_stack_locals[(int) mode][n] = NULL_RTX;
pic_label_rtx = NULL_RTX;
bzero (pic_label_name, 256);
/* Arrange to save and restore i386_stack_locals around nested functions. */
save_machine_status = save_386_machine_status;
restore_machine_status = restore_386_machine_status;