From b94b5c16dd72027309b7f781ce2d02ef07de580c Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Wed, 25 Feb 1998 22:39:34 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 8 ++++++++ gcc/config/i386/i386.c | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c4b841960d4..435e37c24d9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 75e44c1d604..1ca072a4c88 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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;