restrictions on make_trampoline.
Add full table of compiler ports.
/* -*-C-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/hppa.h,v 1.31 1992/02/05 01:45:48 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/hppa.h,v 1.32 1992/02/12 15:32:51 jinx Exp $
-Copyright (c) 1989-92 Massachusetts Institute of Technology
+Copyright (c) 1989-1992 Massachusetts Institute of Technology
This material was developed by the Scheme project at the Massachusetts
Institute of Technology, Department of Electrical Engineering and
#define COMPILER_VAX_TYPE 2
#define COMPILER_SPECTRUM_TYPE 3
#define COMPILER_MIPS_TYPE 4
+#define COMPILER_MC68040_TYPE 5
+#define COMPILER_SPARC_TYPE 6
+#define COMPILER_RS6000_TYPE 7
+#define COMPILER_MC88K_TYPE 8
+#define COMPILER_I386_TYPE 9
+#define COMPILER_ALPHA_TYPE 10
\f
/* Machine parameters to be set by the user. */
register, jump to "scheme_to_interface" and leave the address of
the storage following the code in a standard location.
- TRAMPOLINE_BLOCK_TO_ENTRY is the number of longwords from the start
- of a trampoline to the first instruction. Note that this aligns
- the first instruction to a longword boundary.
-
- WARNING: make_trampoline in cmpint.c will need to be changed if
- machine instructions must be aligned more strictly than just on
- longword boundaries (e.g. quad word alignment for instructions).
+ TRAMPOLINE_ENTRY_POINT returns the address of the entry point of a
+ trampoline when given the address of the word containing
+ the manifest vector header. According to the above picture,
+ it would add 12 bytes to its argument.
TRAMPOLINE_STORAGE takes the address of the first instruction in a
trampoline (not the start of the trampoline block) and returns the
*/
#define TRAMPOLINE_ENTRY_SIZE 3
-#define TRAMPOLINE_BLOCK_TO_ENTRY 3
-#define TRAMPOLINE_STORAGE(tramp) \
-((((SCHEME_OBJECT *) tramp) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
- (2 + TRAMPOLINE_ENTRY_SIZE))
+#define TRAMPOLINE_BLOCK_TO_ENTRY 3 /* longwords from MNV to BLE */
+
+#define TRAMPOLINE_ENTRY_POINT(tramp_block) \
+ (((SCHEME_OBJECT *) (tramp_block)) + TRAMPOLINE_BLOCK_TO_ENTRY)
+
+#define TRAMPOLINE_STORAGE(tramp_entry) \
+ ((((SCHEME_OBJECT *) (tramp_entry)) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
+ (2 + TRAMPOLINE_ENTRY_SIZE))
#define STORE_TRAMPOLINE_ENTRY(entry_address, index) do \
{ \
/* -*-C-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/i386.h,v 1.6 1992/02/05 16:56:12 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/i386.h,v 1.7 1992/02/12 15:29:26 jinx Exp $
Copyright (c) 1992 Massachusetts Institute of Technology
#define COMPILER_RS6000_TYPE 7
#define COMPILER_MC88K_TYPE 8
#define COMPILER_I386_TYPE 9
+#define COMPILER_ALPHA_TYPE 10
\f
/*
} while (0)
#define TRAMPOLINE_ENTRY_SIZE 3
-#define TRAMPOLINE_BLOCK_TO_ENTRY 3
+#define TRAMPOLINE_BLOCK_TO_ENTRY 3 /* MNV to MOV instr. */
#define STORE_TRAMPOLINE_ENTRY(entry_address, index) do \
{ \
(* ((unsigned long *) PC)) = ESI_TRAMPOLINE_TO_INTERFACE_OFFSET; \
} while (0)
-#define TRAMPOLINE_STORAGE(tramp) \
-((((SCHEME_OBJECT *) tramp) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
- (2 + TRAMPOLINE_ENTRY_SIZE))
+#define TRAMPOLINE_ENTRY_POINT(tramp_block) \
+ (((SCHEME_OBJECT *) (tramp_block)) + TRAMPOLINE_BLOCK_TO_ENTRY)
+
+#define TRAMPOLINE_STORAGE(tramp_entry) \
+ ((((SCHEME_OBJECT *) (tramp_entry)) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
+ (2 + TRAMPOLINE_ENTRY_SIZE))
\f
#define COMPILER_REGBLOCK_N_FIXED 16
/* -*-C-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/mips.h,v 1.10 1991/11/25 13:35:42 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/mips.h,v 1.11 1992/02/12 15:31:02 jinx Exp $
-Copyright (c) 1989-91 Massachusetts Institute of Technology
+Copyright (c) 1989-1992 Massachusetts Institute of Technology
This material was developed by the Scheme project at the Massachusetts
Institute of Technology, Department of Electrical Engineering and
#define COMPILER_VAX_TYPE 2
#define COMPILER_SPECTRUM_TYPE 3
#define COMPILER_MIPS_TYPE 4
+#define COMPILER_MC68040_TYPE 5
+#define COMPILER_SPARC_TYPE 6
+#define COMPILER_RS6000_TYPE 7
+#define COMPILER_MC88K_TYPE 8
+#define COMPILER_I386_TYPE 9
+#define COMPILER_ALPHA_TYPE 10
\f
/* Machine parameters to be set by the user. */
register, jump to "scheme_to_interface" and leave the address of
the storage following the code in a standard location.
- TRAMPOLINE_BLOCK_TO_ENTRY is the number of longwords from the start
- of a trampoline to the first instruction. Note that this aligns
- the first instruction to a longword boundary.
-
- WARNING: make_trampoline in cmpint.c will need to be changed if
- machine instructions must be aligned more strictly than just on
- longword boundaries (e.g. quad word alignment for instructions).
+ TRAMPOLINE_ENTRY_POINT returns the address of the entry point of a
+ trampoline when given the address of the word containing
+ the manifest vector header. According to the above picture,
+ it would add 12 bytes to its argument.
TRAMPOLINE_STORAGE takes the address of the first instruction in a
trampoline (not the start of the trampoline block) and returns the
#define TRAMPOLINE_ENTRY_SIZE 4
#define TRAMPOLINE_BLOCK_TO_ENTRY 3
-#define TRAMPOLINE_STORAGE(tramp) \
-((((SCHEME_OBJECT *) tramp) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
- (2 + TRAMPOLINE_ENTRY_SIZE))
+
+#define TRAMPOLINE_ENTRY_POINT(tramp_block) \
+ (((SCHEME_OBJECT *) (tramp_block)) + TRAMPOLINE_BLOCK_TO_ENTRY)
+
+#define TRAMPOLINE_STORAGE(tramp_entry) \
+ ((((SCHEME_OBJECT *) (tramp_entry)) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
+ (2 + TRAMPOLINE_ENTRY_SIZE))
#define SPECIAL_OPCODE 000
#define ADDI_OPCODE 010
/* -*-C-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpintmd/hppa.h,v 1.31 1992/02/05 01:45:48 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpintmd/hppa.h,v 1.32 1992/02/12 15:32:51 jinx Exp $
-Copyright (c) 1989-92 Massachusetts Institute of Technology
+Copyright (c) 1989-1992 Massachusetts Institute of Technology
This material was developed by the Scheme project at the Massachusetts
Institute of Technology, Department of Electrical Engineering and
#define COMPILER_VAX_TYPE 2
#define COMPILER_SPECTRUM_TYPE 3
#define COMPILER_MIPS_TYPE 4
+#define COMPILER_MC68040_TYPE 5
+#define COMPILER_SPARC_TYPE 6
+#define COMPILER_RS6000_TYPE 7
+#define COMPILER_MC88K_TYPE 8
+#define COMPILER_I386_TYPE 9
+#define COMPILER_ALPHA_TYPE 10
\f
/* Machine parameters to be set by the user. */
register, jump to "scheme_to_interface" and leave the address of
the storage following the code in a standard location.
- TRAMPOLINE_BLOCK_TO_ENTRY is the number of longwords from the start
- of a trampoline to the first instruction. Note that this aligns
- the first instruction to a longword boundary.
-
- WARNING: make_trampoline in cmpint.c will need to be changed if
- machine instructions must be aligned more strictly than just on
- longword boundaries (e.g. quad word alignment for instructions).
+ TRAMPOLINE_ENTRY_POINT returns the address of the entry point of a
+ trampoline when given the address of the word containing
+ the manifest vector header. According to the above picture,
+ it would add 12 bytes to its argument.
TRAMPOLINE_STORAGE takes the address of the first instruction in a
trampoline (not the start of the trampoline block) and returns the
*/
#define TRAMPOLINE_ENTRY_SIZE 3
-#define TRAMPOLINE_BLOCK_TO_ENTRY 3
-#define TRAMPOLINE_STORAGE(tramp) \
-((((SCHEME_OBJECT *) tramp) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
- (2 + TRAMPOLINE_ENTRY_SIZE))
+#define TRAMPOLINE_BLOCK_TO_ENTRY 3 /* longwords from MNV to BLE */
+
+#define TRAMPOLINE_ENTRY_POINT(tramp_block) \
+ (((SCHEME_OBJECT *) (tramp_block)) + TRAMPOLINE_BLOCK_TO_ENTRY)
+
+#define TRAMPOLINE_STORAGE(tramp_entry) \
+ ((((SCHEME_OBJECT *) (tramp_entry)) - TRAMPOLINE_BLOCK_TO_ENTRY) + \
+ (2 + TRAMPOLINE_ENTRY_SIZE))
#define STORE_TRAMPOLINE_ENTRY(entry_address, index) do \
{ \