From: Guillermo J. Rozas Date: Sat, 23 May 1987 14:31:17 +0000 (+0000) Subject: Add PRIMITIVE_ABORT. X-Git-Tag: 20090517-FFI~13483 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=d41ca88e5f87d7519dc97a2acfc01c123a0da85f;p=mit-scheme.git Add PRIMITIVE_ABORT. --- 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); \