diff options
Diffstat (limited to 'src/h/typedefs.h')
-rw-r--r-- | src/h/typedefs.h | 62 |
1 files changed, 27 insertions, 35 deletions
diff --git a/src/h/typedefs.h b/src/h/typedefs.h index 984af9a..041a1f7 100644 --- a/src/h/typedefs.h +++ b/src/h/typedefs.h @@ -39,43 +39,35 @@ typedef word C_integer; */ typedef int (*continuation) (void); -#if !COMPILER - - /* - * Typedefs for the interpreter. - */ - - /* - * Icode consists of operators and arguments. Operators are small integers, - * while arguments may be pointers. To conserve space in icode files on - * computers with 16-bit ints, icode is written by the linker as a mixture - * of ints and words (longs). When an icode file is read in and processed - * by the interpreter, it looks like a C array of mixed ints and words. - * Accessing this "nonstandard" structure is handled by a union of int and - * word pointers and incrementing is done by incrementing the appropriate - * member of the union (see the interpreter). This is a rather dubious - * method and certainly not portable. A better way might be to address - * icode with a char *, but the incrementing code might be inefficient - * (at a place that experiences a lot of execution activity). - * - * For the moment, the dubious coding is isolated under control of the - * size of integers. - */ - - #if IntBits != WordBits +/* + * Icode consists of operators and arguments. Operators are small integers, + * while arguments may be pointers. To conserve space in icode files on + * computers with 16-bit ints, icode is written by the linker as a mixture + * of ints and words (longs). When an icode file is read in and processed + * by the interpreter, it looks like a C array of mixed ints and words. + * Accessing this "nonstandard" structure is handled by a union of int and + * word pointers and incrementing is done by incrementing the appropriate + * member of the union (see the interpreter). This is a rather dubious + * method and certainly not portable. A better way might be to address + * icode with a char *, but the incrementing code might be inefficient + * (at a place that experiences a lot of execution activity). + * + * For the moment, the dubious coding is isolated under control of the + * size of integers. + */ - typedef union { - int *op; - word *opnd; - } inst; +#if IntBits != WordBits - #else /* IntBits != WordBits */ + typedef union { + int *op; + word *opnd; + } inst; - typedef union { - word *op; - word *opnd; - } inst; +#else /* IntBits != WordBits */ - #endif /* IntBits != WordBits */ + typedef union { + word *op; + word *opnd; + } inst; -#endif /* COMPILER */ +#endif /* IntBits != WordBits */ |