- May 21, 2016
-
-
Raymond Toy authored
-
Raymond Toy authored
-
- May 14, 2016
-
-
Raymond Toy authored
src/compiler/float.lisp: o The deftransform coerce was checking for a type of 'float and using %single-float to do the conversion. This is incorrect; it should only apply if the type is 'single-float. tests/issues.lisp o Add test for this. Verified that the test fails on the current snapshot and ix fixed by this change.
-
- May 13, 2016
-
-
Raymond Toy authored
The deftransform for converting an (unsigned-byte 32) to a double-float was using the wrong type of float constant. It should have been a double instead of single. This fix allows sparc to cross-compile itself now.
-
- May 12, 2016
-
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
- May 11, 2016
-
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
When RELOCATABLE_STACK_START is defined, the control stack, binding stack, and sigalt stack are located wherever mmap finds room for them. Only implemented with sparc_sunc config.
-
Raymond Toy authored
We want #ifndef, not #ifdef to enable the relocatable stacks.
-
Raymond Toy authored
When RELOCATABLE_STACK_START is defined, the control stack, binding stack, and sigalt stack are located wherever mmap finds room for them.
-
- May 10, 2016
-
-
Raymond Toy authored
When RELOCATABLE_STACK_START is defined, the control stack, binding stack, and sigalt stack are located wherever mmap finds room for them. Currently only implemented for Darwin, but should work for linux and solaris. We enable this by default on Darwin now.
-
- May 08, 2016
-
- Mar 26, 2016
-
-
Raymond Toy authored
-
- Mar 12, 2016
-
- Mar 06, 2016
-
-
Raymond Toy authored
-
- Feb 29, 2016
-
-
Raymond Toy authored
According to the message from Chisheng Huang on cmucl-help, 2016-02-27, 32-bit Ubuntu 11.10 (in VirtualBox) cannot use the full heap space. There's something already allocated at address 0xb7b82000, so limit the max heap to address 0xb7b80000, for a total of 1530 MB instead of 1632 MB. (It would be nice to be able to detect this somehow.)
-
- Feb 15, 2016
-
-
Raymond Toy authored
-
- Jan 25, 2016
-
-
Raymond Toy authored
Remove the :load-if stuff. Don't think it's needed.
-
- Jan 23, 2016
-
-
Raymond Toy authored
Instead of storing the high and low words to memory and then loading it into the double-reg, use SSE2 instructions to directly create the double-float from the high and low words.
-
Raymond Toy authored
-
- Jan 18, 2016
-
-
Raymond Toy authored
One temp variable for bignum-shld can be removed and the only temp variable for bignum-shld-c can be removed. Base this on the digit-ashr vops. This makes the vops simpler and faster.
-
Raymond Toy authored
-
- Jan 16, 2016
-
-
Raymond Toy authored
These are useful for multi-precision shifts. For x86, we can use the shld and shrd instructions. For others, we just use basic logical operations.
-
Raymond Toy authored
o Need to define a new instruction format for these double shifts; they look like ext-reg-reg/mem but there's no width field. o Clean up emit-double-shift slightly. o Update double-shift-inst-printer-list to support both immediate shift or shifts in CL.
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
Fix #18.
-
Raymond Toy authored
Fix #17.
-
- Jan 14, 2016
-
-
Raymond Toy authored
-
- Jan 13, 2016
-
-
Raymond Toy authored
Put an unwind-protect around the error calls. The cleanup form restores the floating-point modes from the sigcontext so that the mode is restored. This is needed, I think, because we throw so that the signal handler doesn't return so the sigcontext isn't restored. If we don't restore the fpu state, it's set to the default processor state. We want the default state when calling error. In this way, things like (* 1d300 1d300) signals an overflow, and when we throw to top-level, the floating-point modes are restored to their original values they had before.
-
- Jan 10, 2016
-
-
Raymond Toy authored
We just want to return the original modes, so remove all the old commented out stuff that was modifying the original modes to some strange state. This makes a lot more sense to me if WITH-FLOAT-TRAPS-* actually restored the modes exactly as they were before running the body.
-
Raymond Toy authored
In sigfpe-handler, don't modify the modes; just use whatever they are. (They should be the default values.) In with-float-traps-*, actually just restore the floating-point mode to the exact original mode instead of trying to mask things out.
-
Raymond Toy authored
Don't restore the fpu state from the context in the interrupt handler code (interrupt_handle_now) because that just makes the fpu state the same as the sigcontext that received the exception. I think this was done to reset the x87 fpu precision to 53-bit so that lisp can continue with default double-float rounding. This isn't needed anymore since lisp doesn't use x87 anymore. In SIGFPE-HANDLER, don't modify the current fp state based on the state from the sigcontext. These two items cause the arithmetic-error exception printer to trigger inexact when printing out the args. We add a few debugging prints for now so we can see what the FP state is in the handler. Remove them later.
-
- Jan 09, 2016
-
-
Raymond Toy authored
Forgot to put in an else clause if the specified size was 0.
-
Raymond Toy authored
-