Mark Friedman [Thu, 19 May 1988 15:32:53 +0000 (15:32 +0000)]
Added expression cost for FIXNUM->OBJECT.
Subtracted the boxing cost for the fixnum operations
because we now do the boxing explicitly via FIXNUM->OBJECT.
Mark Friedman [Thu, 19 May 1988 15:29:00 +0000 (15:29 +0000)]
Fixed code for fixnum operations involving constants.
Multiplication by a power of 2 becomes a shift.
If the fixnum operation is commutative and involves a
constant, better code may be generated by swaping the
order of the operands. This is now done.
Mark Friedman [Thu, 19 May 1988 15:26:57 +0000 (15:26 +0000)]
Added support for FIXNUM->OBJECT rtl type.
Removed the implicit boxing of fixnum operations
because it is now done explicitly by FIXNUM->OBJECT.
Mark Friedman [Thu, 19 May 1988 15:22:46 +0000 (15:22 +0000)]
Added an explicit FIXNUM->OBJECT rtl type for eventual
support for reusing the unboxed results of fixnum operations
Mark Friedman [Thu, 19 May 1988 15:10:36 +0000 (15:10 +0000)]
Open coded vector-ref and vector-set! with non-constant indices.
No index range checking yet.
Commented out code for open codinf of system-... functions with
side effects. These were causing an esoteric GC problem.
Guillermo J. Rozas [Thu, 19 May 1988 01:47:37 +0000 (01:47 +0000)]
Fix bug in INTERPRETER-REGISTER. It now checks whether the offset is
a known offset directly, and if not, it tries the aligned version
instead. The bug was noticed because interpreter entries are 6 bytes
long, so only half of them are aligned, and the others were not found.
Henry M. Wu [Tue, 17 May 1988 16:57:01 +0000 (16:57 +0000)]
Character Stuff.
Guillermo J. Rozas [Sat, 14 May 1988 16:20:17 +0000 (16:20 +0000)]
Disassembler changes:
- Fix unbound variable bugs in the disassembler.
- Fix symbolic/numeric register bug.
- Fix bug backing out of undefined instructions.
- Make bad 68020 extended forms back out instead of causing errors.
- Add handlers for 68020 32/64 bit multiplication and division.
Chris Hanson [Fri, 13 May 1988 03:01:07 +0000 (03:01 +0000)]
Add aliases for `object-new-type' and `primitive-object-new-type'.
Chris Hanson [Thu, 12 May 1988 22:28:29 +0000 (22:28 +0000)]
Conditionalize phase error test so that it is ignored if
FLOATING_ALIGNMENT is defined. This will eventually be fixed
correctly.
Chris Hanson [Wed, 11 May 1988 17:21:16 +0000 (17:21 +0000)]
Bugs: `object-gc-type' was using `MAKE_UNSIGNED_FIXNUM' to compute its
result when in fact the result was signed. `object-set-type' was
going to `Microcode_Termination' when its first argument was an
unknown type code, rather than signalling a bad-range error.
Guillermo J. Rozas [Wed, 11 May 1988 04:20:07 +0000 (04:20 +0000)]
Initial revision
Guillermo J. Rozas [Wed, 11 May 1988 04:19:27 +0000 (04:19 +0000)]
Add a REDUCE-OPERATOR declaration so that users can get the same
functionality as the system already provides for +, -, list, etc.
Shorten some of the warning messages.
Henry M. Wu [Tue, 10 May 1988 19:53:41 +0000 (19:53 +0000)]
Added knowledge of byte/char operations
Chris Hanson [Tue, 10 May 1988 18:14:04 +0000 (18:14 +0000)]
Change type check on first argument to `dump-band' to include all
applicable types.
Change definitions of SMALLEST_FIXNUM and BIGGEST_FIXNUM to have
explicit casts to long type. Previously this was automatically true
but ANSI C forces such constants to be unsigned long instead.
Chris Hanson [Tue, 10 May 1988 18:12:45 +0000 (18:12 +0000)]
Change type check on first argument to `dump-band' to include all
applicable types.
Chris Hanson [Tue, 10 May 1988 17:34:41 +0000 (17:34 +0000)]
Change definitions of SMALLEST_FIXNUM and BIGGEST_FIXNUM to have
explicit casts to long type. Previously this was automatically true
but ANSI C forces such constants to be unsigned long instead.
Chris Hanson [Tue, 10 May 1988 15:16:46 +0000 (15:16 +0000)]
Move `get-fluid-bindings' and `set-fluid-bindings!' into the normal
microcode. This allows the new runtime system to have the hooks for
fluid-bindings even if they aren't in use.
Henry M. Wu [Tue, 10 May 1988 00:38:45 +0000 (00:38 +0000)]
CHAR/STRING open-coding, bug fix
Henry M. Wu [Tue, 10 May 1988 00:10:33 +0000 (00:10 +0000)]
CHAR/STRING open-coding, bug fix
Henry M. Wu [Mon, 9 May 1988 20:01:32 +0000 (20:01 +0000)]
CHAR/STRING open-coding
Henry M. Wu [Mon, 9 May 1988 19:57:17 +0000 (19:57 +0000)]
Added string/char open-coding.
Chris Hanson [Fri, 6 May 1988 12:40:26 +0000 (12:40 +0000)]
Default `load-noisily?' to false. People seem to prefer this.
Chris Hanson [Fri, 6 May 1988 09:09:44 +0000 (09:09 +0000)]
Update `primitive-purify' to new interface. Forgot to do this one
when the regular version was updated.
Chris Hanson [Thu, 5 May 1988 09:35:34 +0000 (09:35 +0000)]
Eliminate random escape from string. Rename variable `string' to
`str' because `string' is a typedef. HP compiler works but this is
illegal combination.
Chris Hanson [Thu, 5 May 1988 09:29:44 +0000 (09:29 +0000)]
Illegal to take address of a variable that has been declared
`register'. HP's compiler never complained by GCC does.
Chris Hanson [Thu, 5 May 1988 08:42:47 +0000 (08:42 +0000)]
Change interface of `primitive-purify' to take an extra argument,
`safety-margin' (which works like the argument to `garbage-collect'),
and returns an extra value (which is like the value of
`garbage-collect'). These changes will allow purify to be used
instead of gc when desired.
Guillermo J. Rozas [Wed, 4 May 1988 20:44:33 +0000 (20:44 +0000)]
1) Change -compiler to default parameters, so that they can be
overriden with -band, -heap, etc.
2) Add double MC68881 code in hand-coded generic arithmetic for use by
compiled code.
Guillermo J. Rozas [Wed, 4 May 1988 19:22:12 +0000 (19:22 +0000)]
1) Change -compiler to default parameters, so that they can be
overriden with -band, -heap, etc.
2) Add double MC68881 code in hand-coded generic arithmetic for use by
compiled code.
Guillermo J. Rozas [Wed, 4 May 1988 04:17:49 +0000 (04:17 +0000)]
Increment COMPILER_CONSTANT_SIZE and COMPILER_HEAP_SIZE.
Guillermo J. Rozas [Tue, 3 May 1988 21:53:15 +0000 (21:53 +0000)]
Initial revision
Guillermo J. Rozas [Tue, 3 May 1988 19:22:09 +0000 (19:22 +0000)]
Implement environment-link-name.
Split lookup.c into lookup.c and lookprm.c which contains the
primitive procedures to invoke the lookup code.
Guillermo J. Rozas [Tue, 3 May 1988 19:04:42 +0000 (19:04 +0000)]
Fix paranoia bug in list.scm (map, map*, and for-each were not
paranoid enough).
Add error handlers for environment-link-name.
Guillermo J. Rozas [Tue, 3 May 1988 18:55:13 +0000 (18:55 +0000)]
Fix paranoia bug in list.scm (map, map*, and for-each were not
paranoid enough).
Add error handlers for environment-link-name.
Guillermo J. Rozas [Tue, 3 May 1988 16:30:39 +0000 (16:30 +0000)]
Restore bad-assignment error for environment-link-name.
Henry M. Wu [Tue, 3 May 1988 01:09:33 +0000 (01:09 +0000)]
Added information on FIXNUM size.
Henry M. Wu [Tue, 3 May 1988 01:04:25 +0000 (01:04 +0000)]
Fixed bug with FIXNUM-CONSTANT not sign-extending.
Henry M. Wu [Tue, 3 May 1988 00:35:08 +0000 (00:35 +0000)]
Added information on FIXNUM size.
Henry M. Wu [Mon, 2 May 1988 23:53:41 +0000 (23:53 +0000)]
Added information on FIXNUM size.
Mark Friedman [Fri, 29 Apr 1988 15:04:16 +0000 (15:04 +0000)]
OOPS. Last version had a missinbg paren.
Mark Friedman [Fri, 29 Apr 1988 14:55:22 +0000 (14:55 +0000)]
Added support for open coding of fixnum arithmetic and predicates.
Chris Hanson [Thu, 28 Apr 1988 18:52:03 +0000 (18:52 +0000)]
Always use a pipe to communicate with Scheme even if PTYs are
available. Scheme doesn't care and this fixes random PTY bugs.
Henry M. Wu [Wed, 27 Apr 1988 18:26:12 +0000 (18:26 +0000)]
Removed default mapping between ascii and mit-ascii.
Henry M. Wu [Wed, 27 Apr 1988 18:24:54 +0000 (18:24 +0000)]
Fixed position of meta bit, added ASCII names.
Guillermo J. Rozas [Wed, 27 Apr 1988 04:12:44 +0000 (04:12 +0000)]
deep_lookup was being called with an extraneous fourth argument.
Guillermo J. Rozas [Wed, 27 Apr 1988 03:07:56 +0000 (03:07 +0000)]
Fix a bug in local lexprs.
Guillermo J. Rozas [Wed, 27 Apr 1988 01:10:33 +0000 (01:10 +0000)]
Fix a bug in local lexprs.
Guillermo J. Rozas [Wed, 27 Apr 1988 01:09:19 +0000 (01:09 +0000)]
Remove RC_REPEAT_DISPATCH.
Chris Hanson [Tue, 26 Apr 1988 19:41:49 +0000 (19:41 +0000)]
Change `load' to interact better with Emacs interface. Dissect REP
loop slightly to allow its parts to be used independently by `load'.
Now whenever `load' prints a value it is also entered in the REP
printer history. Also, the value of the last file loaded is returned
to the REP loop as the value of the `load' expression.
All of this is useful for allowing Emacs to use `load' for zapping.
Now, zapping from a file is more or less equivalent to zapping through
a pipe. Before, there were significant differences, especially
noticeable in interaction with the printer history.
Mark Friedman [Tue, 26 Apr 1988 18:56:24 +0000 (18:56 +0000)]
Added a new test in optimize-rtl called rtl:optimizable?
Currently it is only used to prevent the optimization of
OBJECT->FIXNUM. This is done to prevent an explosion in the
number of rules necessary in the back end. See the commant in
optimize-rtl for more info.
Mark Friedman [Tue, 26 Apr 1988 18:52:37 +0000 (18:52 +0000)]
Added cse methods for FIXNUM-PRED-2-ARGS and FIXNUM-PRED-1-ARG.
This is in support of binary and unary open coded fixnum predicates.
Mark Friedman [Tue, 26 Apr 1988 18:48:18 +0000 (18:48 +0000)]
Added fixnums to non-object-invalidate. Someday we may not
need to do this. We may be able to keep these guys around.
See the log message for rtlbase/rtlcon.scm 4.6 for some more info.
Mark Friedman [Tue, 26 Apr 1988 18:33:37 +0000 (18:33 +0000)]
Support added for the generation of rtl for open coded fixnum
arithmetic and predicates.
NOTE: Someday, when we have some support for the persistance of
untyped objects (i.e. when we have some way of saving unboxed
fixnums across GC calls) we can do some fancier things such as
eliminating the boxing of a fixnum calculation which is just going
to be unboxed and used in another fixnum calculation. My idea
for doing this is to add an explicit FIXNUM->OBJECT rtl expression
and when OBJECT->FIXNUM is simplified and its operand is FIXNUM->OBJECT
then cancel them out and return the operand of the FIXNUM->OBJECT.
The result of an fixnum expression expression will then have to be
considered an RTL:FIXNUM-VALUED-EXPRESSION? and OBJECT-NON-INVALIDATE
will have to be updated.
Mark Friedman [Mon, 25 Apr 1988 21:45:08 +0000 (21:45 +0000)]
Added a FIXNUM type of register analagous to ADDRESS registers.
Their current use is to hold the results of OBJECT->FIXNUM expressions
and assignments of such registers to other registers. We have to tell
the cse code that such registers and expressions are invalid across
anything that can call the garbage collector. This is because the
garbage collector would currently barf on such values that have no
type codes (i.e. fixnums which have had their type codes removed).
In the future, FIXNUM registers may contain the reults of fixnum
arithmetic expressions, so that we are not doing so much boxing and
unboxing. Currently however, all such results are boxed into their
destinations.
Mark Friedman [Mon, 25 Apr 1988 21:34:43 +0000 (21:34 +0000)]
Added a FIXNUM type of register analagous to ADDRESS registers.
Their current use is to hold the results of OBJECT->FIXNUM expressions
and assignments of such registers to other registers. We have to tell
the cse code that such registers and expressions are invalid across
anything that can call the garbage collector. This is because the
garbage collector would currently barf on such values that have no
type codes (i.e. fixnums which have had their type codes removed).
In the future, FIXNUM registers may contain the reults of fixnum
arithmetic expressions, so that we are not doing so much boxing and
unboxing. Currently however, all such results are boxed into their
destinations.
Mark Friedman [Mon, 25 Apr 1988 21:27:54 +0000 (21:27 +0000)]
Added the following RTL types for the support of fixnum operations:
FIXNUM-2-ARGS - for binary fixnum arithmetic operations
FIXNUM-1-ARG - for unary fixnum arithmetic operations
FIXNUM-PRED-2-ARGS - for binary fixnum predicates
FIXNUM-PRED-1-ARG - for unary fixnum-predicates
OBJECT->FIXNUM - for unboxing fixnum objects
Chris Hanson [Mon, 25 Apr 1988 17:50:01 +0000 (17:50 +0000)]
Rename variable `string' to `str'; it conflicts with a typedef of the
same name. Change character constant '\=' to '='; former is undefined
escape sequence.
Chris Hanson [Mon, 25 Apr 1988 17:30:02 +0000 (17:30 +0000)]
Fix typo.
Chris Hanson [Mon, 25 Apr 1988 15:43:08 +0000 (15:43 +0000)]
Change conditionalization of `__GNU__' to `__GNUC__'. Fix bug in
`flush_input_buffer()' on USG systems: argument is `int', not `int *'.
Change file I/O to unbuffered; tty I/O remains buffered using stdio.
Opening fasl output file now deletes existing file first.
Chris Hanson [Mon, 25 Apr 1988 12:53:38 +0000 (12:53 +0000)]
Add indentation for `with-values'.
Chris Hanson [Sun, 24 Apr 1988 10:04:59 +0000 (10:04 +0000)]
Remove random parens from end of #ifndef statements.
Chris Hanson [Sat, 23 Apr 1988 12:37:41 +0000 (12:37 +0000)]
Add missing rule.
Chris Hanson [Sat, 23 Apr 1988 08:55:34 +0000 (08:55 +0000)]
Move all `integrate-external' declarations into the files, using
relative pathnames.
Chris Hanson [Sat, 23 Apr 1988 08:25:27 +0000 (08:25 +0000)]
Bind `sf/default-externs-pathname' to same directory as input file
when syntaxing a file. This is correct default for relative filenames
that appear in a file's declarations.
Mark Friedman [Fri, 22 Apr 1988 16:39:45 +0000 (16:39 +0000)]
Added support for the open coding of fixnum arithmetic and fixnum predicates.
Mark Friedman [Fri, 22 Apr 1988 16:32:44 +0000 (16:32 +0000)]
Fixed the MULS MULU DIVS and DIVU instructions; the operands were
reversed.
NOTE: The dissassembler totally screws up on these instructions.
Mark Friedman [Fri, 22 Apr 1988 16:28:23 +0000 (16:28 +0000)]
Added expression costs for fixnum expressions. These costs
are pretty rough. Someone who really understands the 68020
book should check them out.
Mark Friedman [Fri, 22 Apr 1988 16:23:56 +0000 (16:23 +0000)]
Added support for the open coding of fixnum arithmetic and fixnum predicates.
Mark Friedman [Fri, 22 Apr 1988 16:21:29 +0000 (16:21 +0000)]
Added rules to support open coding of fixnum arithmetic.
Guillermo J. Rozas [Thu, 21 Apr 1988 06:58:23 +0000 (06:58 +0000)]
Fix a bug in "local lexprs". The arity encoding must include the
procedure object, even if it is only a virtual procedure object.
Chris Hanson [Mon, 18 Apr 1988 22:42:55 +0000 (22:42 +0000)]
Change naming of "cmp68020" files.
Chris Hanson [Fri, 15 Apr 1988 17:49:58 +0000 (17:49 +0000)]
*** empty log message ***
Chris Hanson [Fri, 15 Apr 1988 17:00:40 +0000 (17:00 +0000)]
Release 6.2.1
Chris Hanson [Fri, 15 Apr 1988 16:54:02 +0000 (16:54 +0000)]
Do not refer to `Scan' in `GC_NO_COMPILER_STMT', as it isn't defined
in all places that the macro is used.
Chris Hanson [Fri, 15 Apr 1988 16:22:00 +0000 (16:22 +0000)]
Fix compiled-code stubs to cast their value to some appropriate type.
Flush references to `To' since fasload does not define that variable.
Guillermo J. Rozas [Fri, 15 Apr 1988 02:22:34 +0000 (02:22 +0000)]
Change the way first class environments are handled.
There is an extra phase at the front end which translates implicit
environment manipulation operations into explicit ones.
Guillermo J. Rozas [Fri, 15 Apr 1988 02:16:39 +0000 (02:16 +0000)]
Change the way first class environments are handled.
There is an extra phase at the front end which translates implicit
environment manipulation operations into explicit ones.
Guillermo J. Rozas [Fri, 15 Apr 1988 02:10:18 +0000 (02:10 +0000)]
Change the way first class environments are handled.
There is an extra phase at the front end which translates implicit
environment manipulation operations into explicit ones.
Guillermo J. Rozas [Fri, 15 Apr 1988 02:07:16 +0000 (02:07 +0000)]
Initial revision
Chris Hanson [Tue, 12 Apr 1988 18:53:06 +0000 (18:53 +0000)]
Use compiled runtime system.
Chris Hanson [Tue, 12 Apr 1988 18:51:35 +0000 (18:51 +0000)]
Fix bug in resyntaxing of SF.
Chris Hanson [Tue, 12 Apr 1988 18:50:32 +0000 (18:50 +0000)]
Various changes for NFS and new organization.
Chris Hanson [Tue, 12 Apr 1988 18:42:27 +0000 (18:42 +0000)]
Signal error if the number of temporary registers allocated exceeds
the number available for this machine.
Chris Hanson [Tue, 12 Apr 1988 17:03:26 +0000 (17:03 +0000)]
Add new local variable.
Guillermo J. Rozas [Tue, 12 Apr 1988 15:01:28 +0000 (15:01 +0000)]
Remove with-threaded-continuation and add copy-program.
Chris Hanson [Wed, 6 Apr 1988 21:31:31 +0000 (21:31 +0000)]
Change interface to print ";No value" when the value string would be
null.
Chris Hanson [Wed, 6 Apr 1988 17:31:26 +0000 (17:31 +0000)]
Update `show-rtl-instruction' to know about new RTL statement types.
Guillermo J. Rozas [Sun, 3 Apr 1988 18:13:26 +0000 (18:13 +0000)]
Fix bug backing out of fasdump when an environment object is
encountered.
Chris Hanson [Fri, 1 Apr 1988 23:43:17 +0000 (23:43 +0000)]
Fix bug introduced in last change.
Henry M. Wu [Thu, 31 Mar 1988 21:39:16 +0000 (21:39 +0000)]
Trap trivial closures with error in `find-variable-internal'.
Henry M. Wu [Thu, 31 Mar 1988 21:35:23 +0000 (21:35 +0000)]
Add case to `subproblem->expression' for trivial closure consing.
Joe Marshall [Thu, 31 Mar 1988 21:23:18 +0000 (21:23 +0000)]
allocate_string was allocating a word too many.
Chris Hanson [Thu, 31 Mar 1988 04:39:47 +0000 (04:39 +0000)]
Save standard runtime system in "runtime.bin" instead of "scheme.bin".
Chris Hanson [Wed, 30 Mar 1988 23:05:03 +0000 (23:05 +0000)]
Change time reports to match compiler.
Chris Hanson [Wed, 30 Mar 1988 21:59:38 +0000 (21:59 +0000)]
Change time reports to match compiler.
Chris Hanson [Wed, 30 Mar 1988 21:56:15 +0000 (21:56 +0000)]
Change time reports to match compiler.
Chris Hanson [Fri, 25 Mar 1988 21:22:06 +0000 (21:22 +0000)]
Add missing rule. Generalize `increment-anl' to
`increment-machine-register'. Generalize
`reuse-pseudo-register-alias!' to capture idea of reuse without making
assumptions about loading the target register from the source
register.
Chris Hanson [Fri, 25 Mar 1988 20:50:11 +0000 (20:50 +0000)]
Really get these things working.
Brian A. LaMacchia [Fri, 25 Mar 1988 20:36:03 +0000 (20:36 +0000)]
Fixed direction of branch in rule.
It was backwards.
Chris Hanson [Thu, 24 Mar 1988 07:55:27 +0000 (07:55 +0000)]
* Delete `with-threaded-continuation' primitive.
* Implement `get-interrupt-enables' primitive.
* Split `primitive-type' and friends into two classes: one which is
gc-safe and touches arguments, the other non-safe with no touching.
* Implement primitive-procedure name aliasing in microcode. This
allows microcode name changes to reuse existing bands.
* Do not use "-q" ld switch. This causes lossage when Scheme is
loaded over NFS.