From 7c6327954133979278acc87befc6b7b42ae4c769 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Tue, 16 Nov 1993 02:25:15 +0000 Subject: [PATCH] Fix MANIFEST_CLOSURE_COUNT and FIRST_MANIFEST_CLOSURE_ENTRY. The default versions only work when sizeof (unsigned long) = 2 * sizeof (format_word) --- v7/src/microcode/cmpintmd/c.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/v7/src/microcode/cmpintmd/c.h b/v7/src/microcode/cmpintmd/c.h index bf51fae66..502b0fe8a 100644 --- a/v7/src/microcode/cmpintmd/c.h +++ b/v7/src/microcode/cmpintmd/c.h @@ -1,6 +1,6 @@ /* -*-C-*- -$Id: c.h,v 1.4 1993/10/30 03:01:38 gjr Exp $ +$Id: c.h,v 1.5 1993/11/16 02:25:15 gjr Exp $ Copyright (c) 1992-1993 Massachusetts Institute of Technology @@ -74,6 +74,16 @@ extern int pc_zero_bits; { \ ((SCHEME_OBJECT *) (location))[1] = ((SCHEME_OBJECT) (input)); \ } while (0) + +#define MANIFEST_CLOSURE_COUNT(scan) \ +(((COMPILED_ENTRY_OFFSET_WORD (((SCHEME_OBJECT *) (scan)) + 1)) == 0) \ + ? (COMPILED_ENTRY_FORMAT_WORD (((SCHEME_OBJECT *) (scan)) + 1)) \ + : 1) + +#define FIRST_MANIFEST_CLOSURE_ENTRY(scan) \ +(((COMPILED_ENTRY_OFFSET_WORD (((SCHEME_OBJECT *) (scan)) + 1)) == 0) \ + ? (((SCHEME_OBJECT *) (scan)) + 2) \ + : (((SCHEME_OBJECT *) (scan)) + 1)) /* Trampolines are implemented as tiny compiled code blocks that invoke the constant C procedure indexed by the number 0. -- 2.25.1