diff options
author | Richard Stallman <rms@gnu.org> | 1993-10-11 03:02:46 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-10-11 03:02:46 +0000 |
commit | 467664666aa2cb822298f9be1252d5f6263d9ea3 (patch) | |
tree | 8369ddba31b5440c6d5ec775e785bf5d4bff52ec /gcc | |
parent | b7560989531cf57f7723e373d761506fac1686e3 (diff) | |
download | gcc-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.c | 12 |
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. */ { |