Skip to content
Snippets Groups Projects
  1. Mar 23, 2003
    • gerd's avatar
      Optional control stack checking. This is controlled by the · 670d643f
      gerd authored
      	feature :stack-checking because it's not implemented for other
      	systems/architectures yet.  It is currently known to work on
      	FreeBSD 4.8-RC/x86 and Debian 2.2.20/x86.
      
      	* bootfiles/18e/boot3.lisp: New boot file, well, only a
      	description of the boot procedure since no boot file is needed.
      
      	* lisp/x86-validate.h (SIGNAL_STACK_START, SIGNAL_STACK_SIZE)
      	[__FreeBSD__, __linux__]: New defines.
      	(CONTROL_STACK_SIZE) {__FreeBSD__, __linux__]:
      	Adjust for signal stack.
      
      	* lisp/validate.c (validate) [RED_ZONE_HIT]: Call
      	os_guard_control_stack.  Some cleanup.
      
      	* lisp/os.h (BOTH_ZONES, YELLOW_ZONE, RED_ZONE): New enums.
      	Add function prototypes.
      
      	* lisp/interrupt.c (interrupt_install_low_level_handler)
      	[RED_ZONE_HIT]: Deliver protection violations on a dedicated
      	signal stack.
      
      	* lisp/os-common.c (os_stack_grows_down_1, os_stack_grows_down):
      	New functions.
      	(guard_zones, control_stack_zone, os_guard_control_stack)
      	(os_control_stack_overflow) [RED_ZONE_HIT]: New functions.
      	(os_control_stack_overflow) [!RED_ZONE_HIT]: Dummy function.
      
      	* lisp/Linux-os.c (sigsegv_handler) [RED_ZONE_HIT]: Handle control
      	stack overflows.
      
      	* lisp/FreeBSD-os.c: General cleansing.
      	(sigbus_handler) [RED_ZONE_HIT]: Handle control stack overflows.
      
      	* lisp/FreeBSD-os.h (PROTECTION_VIOLATION_SIGNAL): New define.
      
      	* lisp/Linux-os.h (PROTECTION_VIOLATION_SIGNAL): New define.
      
      	* compiler/x86/system.lisp (lisp::%scrub-control-stack): Change
      	defknown from sys:scrub-control-stack.
      	(%scrub-control-stack): Rename VOP.
      
      	* code/lispinit.lisp (os-guard-control-stack) [#+stack-checking]:
      	Define alien os_guard_control_stack.
      	(%scrub-control-stack) [#+x86]: New function.
      	(scrub-control-stack) [#+x86]: Call %scrub-control-stack,
      	call os-guard-control-stack if #+stack-checking.
      
      	* code/interr.lisp (yellow-zone-hit,
      	red-zone-hit) [#+stack-checking]: New functions.
      
      	* code/error.lisp (stack-overflow) [#+stack-checking]: New
      	condition.
      
      	* compiler/generic/new-genesis.lisp (finish-symbols)
      	[#+stack-checking]: Add symbols for control stack checking.
      
      	* compiler/x86/parms.lisp (static-symbols): Likewise.
      670d643f
  2. Aug 28, 2002
    • pmai's avatar
      A number of smallish changes to the new linkage-table code: · cf055d22
      pmai authored
      o Conditionalized some code that is only used in linkage-table builds
        on :linkage-table and LINKAGE_TABLE respectively.
      o Modernized undefined_ff_tramp based on recent changes, and renamed
        it to undefined_foreign_symbol_trap, because it really isn't a
        trampoline.
      o Conditionalized a stray puts(...,dlerror()) in Linux-os.c on DEBUG
      o Installed an error reporter for UNDEFINED_FOREIGN_SYMBOL_ERROR,
        which for now signals a simple-program-error.  We might want to
        introduced a new condition UNDEFINED-FOREIGN-SYMBOL or something,
        which could also be used by the old foreign linkage code.
      cf055d22
  3. Oct 27, 2001
  4. May 01, 1999
  5. Dec 19, 1998
  6. Aug 14, 1998
  7. Jul 24, 1998
  8. Mar 21, 1998
  9. Nov 15, 1997
  10. Nov 01, 1997
    • dtc's avatar
      Improved support for (complex single-float) and (complex double-float) · 4c3b1bb6
      dtc authored
      types. Adds storage classes to the backend for these so they can be
      stored in registers or on the stack without consing; new primitive
      types etc. Also adds (simple-array (complex {single,double}-float))
      array types to avoid consing and speed vectors operations.  All
      these changes are conditional on the :complex-float feature. More work
      is needed to exploit these changes: improving the type dispatch in the
      various function; maybe compiler transforms or more VOPs to handle
      common functions inline.
      4c3b1bb6
  11. Apr 01, 1997
    • dtc's avatar
      Support for some specialised signed array types: (signed-byte 8), · d5d4504f
      dtc authored
      (signed-byte 16), (signed-byte 30), (signed-byte 32).  These patches
      include the general support and the x86 backend support; more to
      follow. The important changes are conditional on the :signed-array
      feature so shouldn't affect the source without this feature. This work
      has been driven by Raymond Toy.
      d5d4504f
  12. Oct 31, 1994
  13. Oct 19, 1994
  14. Jun 24, 1993
  15. May 29, 1993
  16. Feb 26, 1993
  17. Feb 08, 1993
  18. Jan 15, 1993
  19. Apr 15, 1992
  20. Mar 28, 1992
  21. Mar 10, 1992
  22. Feb 14, 1992
  23. Jan 21, 1992
  24. Nov 09, 1991
  25. May 24, 1991
  26. Feb 08, 1991
  27. Dec 11, 1990
  28. Nov 26, 1990
  29. Nov 07, 1990
  30. Oct 03, 1990
  31. Sep 06, 1990
  32. Aug 14, 1990
  33. Aug 12, 1990
  34. Jun 09, 1990
  35. Jun 06, 1990
Loading