aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-10-11 03:02:46 +0000
committerRichard Stallman <rms@gnu.org>1993-10-11 03:02:46 +0000
commit467664666aa2cb822298f9be1252d5f6263d9ea3 (patch)
tree8369ddba31b5440c6d5ec775e785bf5d4bff52ec /gcc
parentb7560989531cf57f7723e373d761506fac1686e3 (diff)
downloadgcc-467664666aa2cb822298f9be1252d5f6263d9ea3.zip
gcc-467664666aa2cb822298f9be1252d5f6263d9ea3.tar.gz
gcc-467664666aa2cb822298f9be1252d5f6263d9ea3.tar.bz2
(save_machine_status, restore_machine_status): New vars.
(push_function_context, pop_function_context): Use them. From-SVN: r5721
Diffstat (limited to 'gcc')
-rw-r--r--gcc/function.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index e1c6a9e..4fb616f 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -306,6 +306,12 @@ static tree empty_cleanup_list;
assign_stack_local uses frame_pointer_rtx when this is nonzero. */
static int virtuals_instantiated;
+/* These variables hold pointers to functions to
+ save and restore machine-specific data,
+ in push_function_context and pop_function_context. */
+void (*save_machine_status) ();
+void (*restore_machine_status) ();
+
/* Nonzero if we need to distinguish between the return value of this function
and the return value of a function called by this function. This helps
integrate.c */
@@ -480,6 +486,9 @@ push_function_context ()
save_expr_status (p);
save_stmt_status (p);
save_varasm_status (p);
+
+ if (save_machine_status)
+ (*save_machine_status) (p);
}
/* Restore the last saved context, at the end of a nested function.
@@ -542,6 +551,9 @@ pop_function_context ()
restore_stmt_status (p);
restore_varasm_status (p);
+ if (restore_machine_status)
+ (*restore_machine_status) (p);
+
/* Finish doing put_var_into_stack for any of our variables
which became addressable during the nested function. */
{