mirror of
https://github.com/Interlisp/maiko.git
synced 2026-01-17 00:22:59 +00:00
This feature was controlled by the compilation flag `OPDISP` which would enable some bits of assembler on the x86 (ISC or DOS) or some other specialized code on SPARC. On SPARC hardware, there was a special compilation process that would preprocess the code and generate dispatch tables. We do this now when this feature is enabled using gcc's computed gotos feature. This is available in clang and some other compilers. Notably, it isn't present in Visual Studio. This doesn't decrease our portability at all as this feature is optional and it replaces specialized assembler code with C using compiler extensions (making it cross-platform). In doing this, we've removed a bunch of related code, however, it is likely that other pieces yet remain and will be removed in subsequent commits as we clean things up and refine them. This feature remains disabled by default for now.
153 lines
6.3 KiB
Plaintext
Executable File
153 lines
6.3 KiB
Plaintext
Executable File
|
|
Medley compile flags & their meanings
|
|
|
|
Created: 28-Sep-89 JDS
|
|
Updated:
|
|
|
|
** Flags that control compilation for various machine
|
|
** architectures, manufacturers, and OS versions
|
|
|
|
Flag Name Meaning/Usage
|
|
_________ ________________________________________________________
|
|
BYTESWAP Used when compiling for a hardware architecture that has
|
|
byte-swapped words and word-swapped 32-bit cells, e.g. 80386.
|
|
I386 True if compiling for the Sun386i (not just any 80386);
|
|
used because the 386i's display controller is odd.
|
|
OS4 True if compiling for SunOS 4.x
|
|
|
|
NOPIXRECT Used to suppress pixrect/pixwin options when they're not
|
|
needed or not available. True if XWINDOW is.
|
|
|
|
AIX True if compiling for AIX
|
|
sparc True if we're compiling on a SPARC machine.
|
|
mc68020 True if we're compiling on a Motorola 680x0 machine.
|
|
sun3 We're compiling for a Sun-3.
|
|
|
|
NOASM If true, suppress any attempt to include assembler
|
|
versions of things in the emulator. In 'lispemul.c',
|
|
if this is true, disables:
|
|
SUN3_OS3_IL
|
|
SUN3_OS4_IL
|
|
SUN4_OS4_IL
|
|
OPDISP
|
|
PROFILE
|
|
and enables NOASMFNCALL
|
|
C_ONLY
|
|
SUN4_OS4_IL Try assembler peephole optimizations for SPARC & SunOS4.x
|
|
SUN3_OS3_IL Try assembler peephole optimizations for 68K & SunOS 3.x
|
|
SUN3_OS4_IL Try assembler peephole optimizations for 68K & SunOS 4.x
|
|
SUN3_OS3_OR_OS4_IL Try asm optimizations for 68K & either sunOS. This is
|
|
turned on whenever either of SUN3_OS3_IL or SUN3_OS4_IL is on.
|
|
|
|
OPDISP Use "fast-opcode-dispatch" macros
|
|
|
|
|
|
|
|
|
|
--Debugging/Tracing/Check-enabling flags--
|
|
|
|
DEBUG Used when debugging, to enclose trace and dump code.
|
|
Best usage is with DBPRINT((controlString, args*));, which
|
|
calls printf, and compiles only if DEBUG is true. See
|
|
dbprint.h for the definition.
|
|
TRACE
|
|
TRACE2
|
|
OPTRACE If true, the dispatch loop prints the PC & opcode each time thru
|
|
FNTRACE If true, you see the name of each function called.
|
|
STACKCHECK If true, you see unusual cases of stack manipulation
|
|
traced. E.g., the hard cases of RETURN, like non-contiguous
|
|
stack frames, get mentioned.
|
|
LISPTRACE True if you want to see LISP calls & returns traced to
|
|
stdout; Generally, for traces of lisp-level events.
|
|
PROFILE If true, the profiling control code is enabled. You must
|
|
also change the optflags to contain -p or -pg, to use prof
|
|
or gprof, respectively.
|
|
CHECK
|
|
FSBCHECK If true, you see a trace of large free stack blocks when
|
|
the stack is manipulated; was used for debugging stack code.
|
|
FSMESSAGE If true, prints a message telling you about the hard links
|
|
it makes (in support of version numbering), as it makes them.
|
|
|
|
WINDOW
|
|
INIT Used when compiling an emulator to build a loadup. Use it
|
|
to dike out code that deals with network initialization, e.g.
|
|
|
|
MYOPTRACE Used to check the stack's validity on each opcode execution.
|
|
Requires NOASM, and the absence of SUN..._IL &c.
|
|
|
|
PCTRACE When true, compiles in a 100-long ring buffer that holds the
|
|
last 100 PCs, Function-blocks, and Opcodes executed. "pccounter"
|
|
is the offset where the next one will go. Also requires NOASM.
|
|
The 3 tables are called pc_table, fn_table, and op_table.
|
|
|
|
|
|
|
|
|
|
--Flags that control new features, features under test, etc.--
|
|
|
|
DISPLAYBUFFER 10/3/89 JDS -- enables the experimental code for copying
|
|
changed portions of the display bank to the frame buffer.
|
|
Meant for supporting mono mode on a CG6 with no single-bit
|
|
bitplane. 1/22/91 JDS: This is now the standard flag for
|
|
compiling for color displays.
|
|
WINDOW
|
|
FLIPCURSOR If true, the "sandbar" line in the cursor will get flipped
|
|
by the C stack-frame-moving code, just as it does on a D
|
|
machine. Otherwise, you don't see it.
|
|
ORG_FILPCORSORBAR If true, you get the pixwin version of cursor changing;
|
|
otherwise, it gets done by direct writes into the display
|
|
region.
|
|
OLD_CURSOR If true, uses the pixwin cursor code (e.g., win_setcursor);
|
|
otherwise, uses the direct-write technique.
|
|
OS4_TYPE4BUG If true, includes the patches around SunOS 4.0.x's failure
|
|
to tell you you've got a Type-4 keyboard.
|
|
ALLDIRSEARCH CURRENTLY HARD DISABLED IN directory.c; looks like it
|
|
controlled recursive directory searches??
|
|
KBINT If true (it looks like??), the emulator does most of the KBD
|
|
transition processing in C, rather than interrupting LISP for
|
|
it, and the transition interrupts happen when the OS signals
|
|
a transition, rather than by polling?
|
|
RS232INT If true, the RS232 device (NOT USED, a translation of Lisp's
|
|
code), uses the interrupt signalling support of timer.c to
|
|
know when to read characters. NOT USED, probably obsolete.
|
|
TTYINT Analogous to RS232INT, for the translated TTY device.
|
|
ETHERINT
|
|
COLOR If TRUE, supports 8bits-per-pixel color on CG4 and CG6 frame
|
|
buffer of Sun work station. IF COLOR is TRUE, don't use OLD_CURSOR
|
|
flag.
|
|
CATCH If true, includes some CATCH C code, for finding the blip,
|
|
finding variable names and PVAR names in frames. As of 10/2/89
|
|
this code is unused, and is called nowhere else in the system.
|
|
RECLAIMINC If true, then the RECLAIMCELL opcode calls gcreclaimcell in
|
|
C; otherwise it punts. As of 10/3/89, this was never debugged
|
|
and is not in any system. Probably fairly easy to debug??
|
|
KB_SUN4 The kbd type for the Type-4 keyboard. Defined only because
|
|
older OS versions of the compiler don't define it automatically.
|
|
FLTINT If true, use the floating-point exception interrupts to detect
|
|
errors and overflows on FP operations. The interrupt sets a
|
|
global error flag. Otherwise, calls library routines to see
|
|
the condition code from each operation. For SPARCs, it's not
|
|
clear that the interrupt trick works, because of code re-
|
|
arrangement by the C compiler.
|
|
BUFFER Used (apparently) only in testdisplay.c to decide if it should
|
|
read the sysout directly, or buffer each page.
|
|
|
|
IFPAGE_DEFINED Used in .h files to prevent redefinition of Interface page.
|
|
IOPAGE_DEFINED " for IO page definition.
|
|
NOWAY Used to dike out C definitions of RPLACA and RPLACD in the
|
|
file car-cdrmacro.h
|
|
XWINDOW True if compiling for an X-windows emulator.
|
|
|
|
BIGATOMS True if this emulator will support 3-byte symbols, instead of
|
|
the old, 2-byte atom numbers.
|
|
|
|
NEWBITBLT True if we want to use assembler BITBLT code, rather than
|
|
have code created inline by macro calls.
|
|
|
|
bitbltsub.c:#ifdef GETBASE
|
|
testdisplay.c:#ifdef NOTUSED
|
|
uraid.c:#ifdef ETHERINT
|
|
bitblt.c:#ifndef COLOR
|
|
bitbltsub.c:#ifndef prropstyle
|
|
lispmap.h:#ifdef MEDLEY
|