From d41ca88e5f87d7519dc97a2acfc01c123a0da85f Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Sat, 23 May 1987 14:31:17 +0000 Subject: [PATCH] Add PRIMITIVE_ABORT. --- v7/src/microcode/prims.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/v7/src/microcode/prims.h b/v7/src/microcode/prims.h index 1f8670fc5..35a399483 100644 --- a/v7/src/microcode/prims.h +++ b/v7/src/microcode/prims.h @@ -30,7 +30,7 @@ Technology nor of any adaptation thereof in any advertising, promotional, or sales literature without prior written consent from MIT in each case. */ -/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prims.h,v 9.25 1987/05/23 09:33:12 jinx Exp $ */ +/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prims.h,v 9.26 1987/05/23 14:31:17 jinx Exp $ */ /* This file contains some macros for defining primitives, for argument type or value checking, and for accessing @@ -46,18 +46,22 @@ Pointer C_Name() extern Pointer C_Name(); \ Pointer C_Name() -/* Preambles for primitive procedures. These store the arguments into - * local variables for fast access. - */ - -#define PRIMITIVE_RETURN(value) return (value) - #ifdef ENABLE_PRIMITIVE_PROFILING #define primitive_entry_hook() record_primitive_entry (Fetch_Expression ()) #else #define primitive_entry_hook() {} #endif +/* Primitives return by performing one of the following operations. */ + +#define PRIMITIVE_RETURN(value) return (value) + +#define PRIMITIVE_ABORT(action) longjmp(*Back_To_Eval, (action)) + +/* Preambles for primitive procedures. These store the arguments into + * local variables for fast access. + */ + #define Primitive_0_Args() primitive_entry_hook () #define Primitive_1_Args() fast Pointer Arg1 = Stack_Ref(0); \ -- 2.25.1