Panayotis Skordos [Wed, 20 Dec 1989 18:03:39 +0000 (18:03 +0000)]
graphics and debug changes
Chris Hanson [Tue, 19 Dec 1989 15:37:09 +0000 (15:37 +0000)]
Change format used by the "Y" command.
Chris Hanson [Thu, 14 Dec 1989 23:05:44 +0000 (23:05 +0000)]
In `trace-display', no-argument case was putting close bracket at
beginning of empty line, when it should have been at the end of the
previous line.
Chris Hanson [Mon, 11 Dec 1989 07:15:11 +0000 (07:15 +0000)]
* Take advantage of new entry points in compiled code interface.
These changes require microcode 11.16 or later.
* Use BFEXTU instruction to extract type field. This instruction is
both faster and smaller than the previous sequence, for both 6 and 8
bit types. Use BFTST instruction to test for zero types.
Conditionalize use of the bit-field instructions on the new flag
`use-68020-instructions?'; I don't believe that we're using any other
68020-specific instructions besides these.
* Add rule for 1-arg fixnum predicates that tries to take advantage of
the preceding LSL.L instruction to test the number, rather than
emitting a redundant TST.L; this new rule is always used in generic
arithmetic expansions.
Chris Hanson [Mon, 11 Dec 1989 06:17:06 +0000 (06:17 +0000)]
* Take advantage of new entry points in compiled code interface.
These changes require microcode 11.16 or later.
* Use BFEXTU instruction to extract type field. This instruction is
both faster and smaller than the previous sequence, for both 6 and 8
bit types. Use BFTST instruction to test for zero types.
Conditionalize use of the bit-field instructions on the new flag
`use-68020-instructions?'; I don't believe that we're using any other
68020-specific instructions besides these.
* Add rule for 1-arg fixnum predicates that tries to take advantage of
the preceding LSL.L instruction to test the number, rather than
emitting a redundant TST.L; this new rule is always used in generic
arithmetic expansions.
Chris Hanson [Sun, 10 Dec 1989 00:50:36 +0000 (00:50 +0000)]
In the 680x0 compiled-code interface, added entry points for many
common entries; also added special entries for `apply' of small frame
sizes. These entry points save space in the compiled code,
eliminating the code expansion caused by the recent upgrade of the
compiled-code interface.
Chris Hanson [Fri, 8 Dec 1989 01:52:17 +0000 (01:52 +0000)]
Add new primitive `file-attributes-indirect' that uses `stat' instead
of `lstat'. Change `file-modification-time' to use it.
Chris Hanson [Fri, 8 Dec 1989 01:50:01 +0000 (01:50 +0000)]
Add new primitive `file-attributes-indirect' that uses `stat' instead
of `lstat'.
Chris Hanson [Thu, 7 Dec 1989 05:54:59 +0000 (05:54 +0000)]
Cause floating-overflow traps to signal at all times. Change hardware
trap frames to contain the "code" passed into the signal handler.
Chris Hanson [Thu, 7 Dec 1989 05:39:36 +0000 (05:39 +0000)]
Make sure that time reports appear in decimal notation.
Chris Hanson [Thu, 7 Dec 1989 05:36:28 +0000 (05:36 +0000)]
Adjust parser for hardware trap frames to account for extra object
pushed by microcode.
Chris Hanson [Thu, 7 Dec 1989 05:32:23 +0000 (05:32 +0000)]
If a microcode error is missing a handler, report the error without
special handling for the irritants.
Chris Hanson [Thu, 7 Dec 1989 05:06:30 +0000 (05:06 +0000)]
If a microcode error is missing a handler, report the error without
special handling for the irritants.
Chris Hanson [Thu, 7 Dec 1989 04:49:20 +0000 (04:49 +0000)]
Fix masking bug in `compiled_entry_type'.
Guillermo J. Rozas [Wed, 6 Dec 1989 10:56:13 +0000 (10:56 +0000)]
Modify comments to match the compiler and cmpaux-hppa.h
Guillermo J. Rozas [Wed, 6 Dec 1989 10:55:37 +0000 (10:55 +0000)]
Add store_closure_code hook to save code space.
Guillermo J. Rozas [Wed, 6 Dec 1989 05:49:28 +0000 (05:49 +0000)]
Fix bug in code that detects whether the manifest closure count can be read.
The area forced to memory did not in fact include the count, so the
count read was garbage.
Chris Hanson [Tue, 5 Dec 1989 23:55:00 +0000 (23:55 +0000)]
Don't consider `cons-closure' to be a trivial RTL expression.
Chris Hanson [Tue, 5 Dec 1989 21:01:21 +0000 (21:01 +0000)]
Typo.
Guillermo J. Rozas [Tue, 5 Dec 1989 20:54:08 +0000 (20:54 +0000)]
- Conditionalize open coding according to the port.
There is now a machine-dependent list
(compiler:primitives-with-no-open-coding) in machin.scm which disables
individual primitives.
- Extend fixnum and flonum operations with an overflow? flag.
- Force use of address registers for indirection.
- Don't emit dynamic-link comparison unless the called procedure is
known to be internal.
Guillermo J. Rozas [Tue, 5 Dec 1989 20:52:40 +0000 (20:52 +0000)]
Conditionalize open coding according to the port.
There is now a machine-dependent list
(compiler:primitives-with-no-open-coding) in machin.scm which disables
individual primitives.
Guillermo J. Rozas [Tue, 5 Dec 1989 20:52:20 +0000 (20:52 +0000)]
Extend fixnum and flonum operations with an overflow? flag.
Chris Hanson [Tue, 5 Dec 1989 20:39:58 +0000 (20:39 +0000)]
Force use of address registers for indirection. If the register is
used once, the cost is about the same in both space and time.
However, if it is used more than once, this is both faster and
smaller.
Chris Hanson [Tue, 5 Dec 1989 20:38:22 +0000 (20:38 +0000)]
Split `machine-register-reference' to create new procedure
`guarantee-alias-register!'. This new procedure is like
`load-alias-register!' except that it accepts a machine register as an
argument and handles it appropriately.
Chris Hanson [Tue, 5 Dec 1989 20:17:13 +0000 (20:17 +0000)]
When compiling a reduction whose caller uses a dynamic link, don't
output link comparison code unless the callee is known to be an
internal procedure.
Chris Hanson [Tue, 5 Dec 1989 20:15:12 +0000 (20:15 +0000)]
Change `move-frame-up' rule to use "mov" rather than "lea" when the
source is an address register.
Guillermo J. Rozas [Mon, 4 Dec 1989 21:49:35 +0000 (21:49 +0000)]
Initial revision
Guillermo J. Rozas [Mon, 4 Dec 1989 21:46:27 +0000 (21:46 +0000)]
New compiled code interface.
Guillermo J. Rozas [Mon, 4 Dec 1989 15:34:40 +0000 (15:34 +0000)]
Add three operand utilities for Vax, RISC, etc.
Add copy-to-special-register.
Guillermo J. Rozas [Sun, 3 Dec 1989 13:09:51 +0000 (13:09 +0000)]
Add scheme_to_interface_ble that falls through to
trampoline_to_interface. GR3 now holds the address of
scheme_to_interface_ble.
Chris Hanson [Sat, 2 Dec 1989 21:19:29 +0000 (21:19 +0000)]
Don't undrift a procedure if the only reason for doing so is contagion
from trivial closures.
Chris Hanson [Sat, 2 Dec 1989 05:03:24 +0000 (05:03 +0000)]
Force compilation times to be written out in decimal notation.
Guillermo J. Rozas [Thu, 30 Nov 1989 21:16:41 +0000 (21:16 +0000)]
Add compiler support for spectrum, and change compiler support to use
the C version.
Guillermo J. Rozas [Thu, 30 Nov 1989 16:07:41 +0000 (16:07 +0000)]
New compiled code interface written in C.
Old hooks have been removed and the register block has been
restructured.
Guillermo J. Rozas [Thu, 30 Nov 1989 16:03:27 +0000 (16:03 +0000)]
New compiled code interface written in C.
rtl-procedures now included a field that specifies whether they
need a dynamic link so that the interrupt handler can be determined at
compile time.
Guillermo J. Rozas [Thu, 30 Nov 1989 15:57:16 +0000 (15:57 +0000)]
New compiled code interface written in C.
Guillermo J. Rozas [Thu, 30 Nov 1989 15:54:29 +0000 (15:54 +0000)]
Initial revision
Chris Hanson [Thu, 30 Nov 1989 07:52:42 +0000 (07:52 +0000)]
Fix bug in `expt': zero raised to an integer power always returned
one. Fix bug in `asin': real arguments of magnitude larger than one
should be handled specially.
Guillermo J. Rozas [Thu, 30 Nov 1989 05:45:25 +0000 (05:45 +0000)]
Clean up machine dependent initialization. The assembly language
hooks are now set up by a procedure in this code.
Guillermo J. Rozas [Thu, 30 Nov 1989 05:44:04 +0000 (05:44 +0000)]
- Remove temporary compatibility code and old initialization code.
The hooks are now set up by code in cmpint-mc68k.h .
- Add an initialization procedure to diddle with the 68881.
Guillermo J. Rozas [Thu, 30 Nov 1989 05:42:46 +0000 (05:42 +0000)]
Clean up machine dependent initialization.
Guillermo J. Rozas [Thu, 30 Nov 1989 05:32:10 +0000 (05:32 +0000)]
Fix bug in Do_Compiled_Entry: OBJECT_NEW_DATUM was incorrectly used
for MAKE_OBJECT, and thus all compiled entries were being dumped as
nulls with non-zero datum fields.
Guillermo J. Rozas [Thu, 30 Nov 1989 03:04:15 +0000 (03:04 +0000)]
Fix bug in boot.c by which GC_Reserve was set after MemTop was
computed in Clear_Memory. GC_Reserve is now set by Clear_Memory.
Rename Heap_In_Low_Memory to HEAP_IN_LOW_MEMORY.
Clean up Spectrum stuff and remove previous version of the quad bit
kludge which forced 8 bit type codes to be used.
Guillermo J. Rozas [Tue, 28 Nov 1989 21:12:51 +0000 (21:12 +0000)]
Add a comment about a future improvement to eliminate the delay slot
nullification in execute cache cells.
Guillermo J. Rozas [Tue, 28 Nov 1989 15:56:16 +0000 (15:56 +0000)]
Document trampolines and interrupt checks.
Guillermo J. Rozas [Tue, 28 Nov 1989 13:08:51 +0000 (13:08 +0000)]
Make EXTRACT_ABSOLUTE_ADDRESS and STORE_ABSOLUTE_ADDRESS call
out-of-line procedures which use bit fields rather than masks.
Guillermo J. Rozas [Tue, 28 Nov 1989 13:07:50 +0000 (13:07 +0000)]
Add a IN_CMPINT_C flag so that cmpint2.h can insert code.
Guillermo J. Rozas [Tue, 28 Nov 1989 05:06:33 +0000 (05:06 +0000)]
Fix segment and subsegment directives.
Fix table load instruction to use short pointer-specified segment.
Guillermo J. Rozas [Tue, 28 Nov 1989 05:03:10 +0000 (05:03 +0000)]
Add a missing + sign in the computation of REGBLOCK_SIZE.
Guillermo J. Rozas [Tue, 28 Nov 1989 05:00:45 +0000 (05:00 +0000)]
Fix the encoding of the space register on the instructions that take
a 3-bit space register code.
Remove COMPILER_HOOK_SIZE, no longer needed.
Remove ASM_REGBLOCK and ASM_RESET_HOOK.
Chris Hanson [Tue, 28 Nov 1989 01:28:19 +0000 (01:28 +0000)]
When interconverting ticks and seconds, represent seconds as inexact
numbers and ticks as exact integers.
Guillermo J. Rozas [Mon, 27 Nov 1989 21:57:01 +0000 (21:57 +0000)]
Fix a bug in bignum printing.
Guillermo J. Rozas [Mon, 27 Nov 1989 20:25:42 +0000 (20:25 +0000)]
Conditionalize according to HAS_COMPILER_SUPPORT and insert the code
previously in compiler.c for the case when there is no support.
Guillermo J. Rozas [Mon, 27 Nov 1989 20:23:19 +0000 (20:23 +0000)]
Remove casts from scalars on the left hand side of assignments. GCC
understands that, but the HP C compiler does not.
Guillermo J. Rozas [Mon, 27 Nov 1989 20:22:42 +0000 (20:22 +0000)]
Remove casts from scalars on the left hand side of assignments. GCC
understands that, but the HP C compiler does not.
Guillermo J. Rozas [Mon, 27 Nov 1989 20:21:20 +0000 (20:21 +0000)]
Fix the comment specifying where further documentation may be found.
Guillermo J. Rozas [Mon, 27 Nov 1989 20:20:26 +0000 (20:20 +0000)]
Change all variables assigned by EXTRACT_EXECUTE_CACHE_ADDRESS, etc.
to have consisten types.
Guillermo J. Rozas [Mon, 27 Nov 1989 18:25:40 +0000 (18:25 +0000)]
Fix typo.
Guillermo J. Rozas [Mon, 27 Nov 1989 18:16:04 +0000 (18:16 +0000)]
Fix the LDIL assembly and disassembly. The bits are not contiguous!
Guillermo J. Rozas [Mon, 27 Nov 1989 16:14:00 +0000 (16:14 +0000)]
Add save/restore code for registers 15-18, also callee-saves.
Guillermo J. Rozas [Mon, 27 Nov 1989 16:12:48 +0000 (16:12 +0000)]
Finish translating to Spectrum instruction set.
Guillermo J. Rozas [Mon, 27 Nov 1989 03:31:40 +0000 (03:31 +0000)]
Make R3 hold trampoline_to_interface rather than scheme_to_interface.
scheme_to_interface is 4 bytes beyond trampoline_to_interface, so
it can be reached from the same register.
Fix the space register in the BLE instruction that invokes the
handler. We are jumping into code space, and the BLE instruction
does not understand short pointers.
Guillermo J. Rozas [Mon, 27 Nov 1989 03:29:16 +0000 (03:29 +0000)]
Initial revision
Guillermo J. Rozas [Mon, 27 Nov 1989 01:03:04 +0000 (01:03 +0000)]
Clean up the mess with machine_word.
Guillermo J. Rozas [Sun, 26 Nov 1989 17:38:57 +0000 (17:38 +0000)]
Clean up the mess with machine_word.
Guillermo J. Rozas [Sun, 26 Nov 1989 01:50:00 +0000 (01:50 +0000)]
Fix comment in header.
Guillermo J. Rozas [Thu, 23 Nov 1989 21:32:46 +0000 (21:32 +0000)]
Update to match the newer cmpint-md.h
Guillermo J. Rozas [Thu, 23 Nov 1989 19:52:04 +0000 (19:52 +0000)]
Initial revision
Guillermo J. Rozas [Thu, 23 Nov 1989 19:51:10 +0000 (19:51 +0000)]
Change the comment at the beginning to make it a little clearer and
general.
Add shortcircuit_apply.
Reorganize the code so that the core, the optimizations, and the
backwards compatibility code are clearly separated.
Guillermo J. Rozas [Wed, 22 Nov 1989 16:29:55 +0000 (16:29 +0000)]
Fix a bug backing out of apply. The procedure and number of arguments
were not being pused on the stack consistently, so there were some
paths that could not restart on interrupt, for example.
Guillermo J. Rozas [Tue, 21 Nov 1989 23:32:09 +0000 (23:32 +0000)]
Remove the patch in comentry_lexpr_apply used to temporarily overcome
the fact that dynamic links were not correctly preserved.
The compiler has been fixed, and the patch is no longer necessary.
Guillermo J. Rozas [Tue, 21 Nov 1989 23:31:05 +0000 (23:31 +0000)]
Fix a bug in comutil_operator_lexpr_trap.
The number of arguments stored in the trampoline is 1 greater than the
number of actual arguments passed, but the primitive convention
expects the correct number.
Guillermo J. Rozas [Tue, 21 Nov 1989 22:21:34 +0000 (22:21 +0000)]
Fix a bug in local lexprs. The dynamic link register was not
preserved accross the call to lexpr-apply. On the 68k, a gc in
lexpr-apply would corrupt the dynamic link. On the portable
interface, it was always corrupted.
Chris Hanson [Tue, 21 Nov 1989 00:00:31 +0000 (00:00 +0000)]
If `fasload' fails to load debugging information for some reason,
recover and pretend that the debugging info doesn't exist.
Guillermo J. Rozas [Mon, 20 Nov 1989 23:19:36 +0000 (23:19 +0000)]
Simple changes:
- Fix a bug: interface_to_C was not restoring the registers saved by
C_to_interface.
- Add scheme_to_interface_jsr entry point.
- Add a temporary patch to lexpr_apply to prevent the dynamic link
register from being clobbered.
- Add some conditionally assembled code to keep a limited history of
calls from compiled code to the interface.
Guillermo J. Rozas [Mon, 20 Nov 1989 23:13:16 +0000 (23:13 +0000)]
Fix a small bug in compiler_interrupt_common: state was not being
restored when the interrupt was dismissed.
Chris Hanson [Wed, 15 Nov 1989 02:48:07 +0000 (02:48 +0000)]
Rules that perform index->fixnum conversions must use arithmetic left
shift so that proper testing for overflow can occur. The reason:
these rules also get invoked by generic arithmetic because the code
compressor sees them and combines instruction pairs to use them.
Chris Hanson [Wed, 15 Nov 1989 02:47:09 +0000 (02:47 +0000)]
Add several missing `int:' prefixes to `ratnum->flonum'. Fix argument
order to `real:atan2' in `complex:angle'. Fix exact integer argument
test in `real:atan2'. Add code to perform exact `expt' when the first
argument is a recnum and the second is an exact integer.
Chris Hanson [Wed, 15 Nov 1989 02:44:07 +0000 (02:44 +0000)]
Define `int:>' as an integrable constant.
Chris Hanson [Wed, 15 Nov 1989 02:40:21 +0000 (02:40 +0000)]
Rules that perform index->fixnum conversions must use arithmetic left
shift so that proper testing for overflow can occur. The reason:
these rules also get invoked by generic arithmetic because the code
compressor sees them and combines instruction pairs to use them.
Guillermo J. Rozas [Sat, 11 Nov 1989 19:13:17 +0000 (19:13 +0000)]
Add a heuristic check to fasload so that it won't get into an infinite
loop trying to load something when there is no space.
Merge in Mike Clarkson's changes to x11term.c
Add a new file: x11xtra.c which includes some additional x11 xterm
functionality (scrolling and screen saving/restoring).
Mark Friedman [Fri, 10 Nov 1989 16:18:42 +0000 (16:18 +0000)]
Fixed os/trim-pathname-string() to have "end" point to the end of the
string, not to one past the end. The old behavior caused it to barf
when presented with a string with a slash at the end (it barfed on the
string-ref in "... ((memv ..."
Guillermo J. Rozas [Thu, 9 Nov 1989 22:07:48 +0000 (22:07 +0000)]
Fix bug in *, t he call to reduce was incorrect.
Chris Hanson [Thu, 9 Nov 1989 04:02:53 +0000 (04:02 +0000)]
Initial revision
Gerald Jay Sussman [Thu, 9 Nov 1989 03:45:06 +0000 (03:45 +0000)]
Add optional arithmetic-interface code.
Guillermo J. Rozas [Tue, 7 Nov 1989 06:37:27 +0000 (06:37 +0000)]
Fix a bug in compiled_entry_type by which lexprs were classified as
random entries. The min arity was read as the max, and viceversa.
Guillermo J. Rozas [Mon, 6 Nov 1989 22:04:26 +0000 (22:04 +0000)]
Second batch of fixes to get scheme up:
Fix EXECUTE_CACHE_ENTRIES_TO_COUNT: It was using the free variable
count rather than the parameter entries.
Guillermo J. Rozas [Mon, 6 Nov 1989 22:03:29 +0000 (22:03 +0000)]
Second batch of fixes to get scheme up:
- Fix the error backouts: They cannot use the expression register for
recovery information since the interpreter bashes it with the size of
the compiled code stack segment.
- Fix a couple of problems with the linker:
on restart it must restore the env register.
the recovery count was saved incorrectly (bad macro).
Guillermo J. Rozas [Mon, 6 Nov 1989 22:00:00 +0000 (22:00 +0000)]
Fix bug in force_definition to return error code when attempting to
force a definition in the empty environment.
Guillermo J. Rozas [Mon, 6 Nov 1989 17:37:30 +0000 (17:37 +0000)]
First batch of changes to run scheme:
Add MAKE_LINKAGE_SECTION_HEADER definition.
Guillermo J. Rozas [Mon, 6 Nov 1989 17:35:29 +0000 (17:35 +0000)]
First batch of changes to run scheme:
Add all the hooks needed for compatibility with the current compiler.
Add an ext.l in comentry_apply.
Add an entry in the register block for trampoline_to_interface.
Clean up the comentry_interrupt_procedure heuristic by invoking two
different comutils: comutil_interrupt_procedure (no dlink) and
comutil_interrupt_dlink.
Guillermo J. Rozas [Mon, 6 Nov 1989 17:33:18 +0000 (17:33 +0000)]
First batch of changes to run scheme:
Add ASM_REGISTER_BLOCK definition and ASM_RESET_HOOK.
A6_OFFSET was incorrect. It corresponded to scheme_to_interface, not
trampoline_to_interface.
Change the definitions of FORMAT_BYTE_MUMBLE and FORMAT_WORD_MUMBLE to
not depend on signed numbers being correctly cast.
Guillermo J. Rozas [Mon, 6 Nov 1989 17:31:23 +0000 (17:31 +0000)]
First batch of changes to run scheme:
- Fix syntax problems.
- The trampoline arity table was accessed incorrectly. The incorrect
index was being computed.
- open_gap had an off-by-one error: The procedure is not on the stack,
so it does not need to be moved.
Chris Hanson [Thu, 2 Nov 1989 08:08:54 +0000 (08:08 +0000)]
* Change variable-indirection pass to occur after closure analysis.
Disable variable-indirection if either the source or target variable
is closed-over.
* Change RTL code-compression to permit compression of
`offset-address' expressions across multiple instructions. Add two
new rules needed to accomplish this for the standard static-link setup
code. The goal of this modification is to permit the use of the "pea"
instruction when pushing static-links.
Guillermo J. Rozas [Thu, 2 Nov 1989 04:01:56 +0000 (04:01 +0000)]
Fix bug in bchmmg.c by which weak pairs whose cars were compiled
procedures would not be updated correctly.
Guillermo J. Rozas [Thu, 2 Nov 1989 03:45:25 +0000 (03:45 +0000)]
Add an extra line to remove junk.c before generating xmakefile.
Guillermo J. Rozas [Wed, 1 Nov 1989 18:58:03 +0000 (18:58 +0000)]
Add the instruction typedef (moved here from cmpint.c).
Guillermo J. Rozas [Wed, 1 Nov 1989 18:57:07 +0000 (18:57 +0000)]
Remove the instruction typedef (in cmpint2.h now).
Guillermo J. Rozas [Wed, 1 Nov 1989 18:54:12 +0000 (18:54 +0000)]
Insert cmpgc-stub.h after conditionalizing according to
HAS_COMPILER_SUPPORT .
Rename to cmpgc.h from cmpgc-portable.h
Guillermo J. Rozas [Wed, 1 Nov 1989 18:46:41 +0000 (18:46 +0000)]
Initial revision