|
[Sbcl-commits] CVS: sbcl/src/compiler/sparc vm.lisp,1.11,1.12
From: Nathan Froyd <nfroyd@us...> - 2006-01-27 15:53
|
Update of /cvsroot/sbcl/sbcl/src/compiler/sparc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16274/src/compiler/sparc
Modified Files:
vm.lisp
Log Message:
0.9.9.5:
Reduce storage requirements for error trap information:
... shuffle around ANY-REG and DESCRIPTOR-REG storage classes
to make their SC-NUMBERs small, which makes SC-OFFSETs smaller,
which cuts down the size of SC-OFFSETs in error trap
information from three bytes to one byte;
... saves ~250KB in core files on PPC/OS X;
... only applies to RISCy platforms, as x86oid SC-OFFSETs already
fit into a single byte due to having a smaller number of
registers.
Bump the fasl file version, too.
Index: vm.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/sparc/vm.lisp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- vm.lisp 14 Jul 2005 18:48:35 -0000 1.11
+++ vm.lisp 27 Jan 2006 15:53:19 -0000 1.12
@@ -150,6 +150,27 @@
;; The control stack. (Scanned by GC)
(control-stack control-stack)
+ ;; We put ANY-REG and DESCRIPTOR-REG early so that their SC-NUMBER
+ ;; is small and therefore the error trap information is smaller.
+ ;; Moving them up here from their previous place down below saves
+ ;; ~250K in core file size. --njf, 2006-01-27
+
+ ;; Immediate descriptor objects. Don't have to be seen by GC, but nothing
+ ;; bad will happen if they are. (fixnums, characters, header values, etc).
+ (any-reg
+ registers
+ :locations #.(append non-descriptor-regs descriptor-regs)
+ :constant-scs (zero immediate)
+ :save-p t
+ :alternate-scs (control-stack))
+
+ ;; Pointer descriptor objects. Must be seen by GC.
+ (descriptor-reg registers
+ :locations #.descriptor-regs
+ :constant-scs (constant null immediate)
+ :save-p t
+ :alternate-scs (control-stack))
+
;; The non-descriptor stacks.
(signed-stack non-descriptor-stack) ; (signed-byte 32)
(unsigned-stack non-descriptor-stack) ; (unsigned-byte 32)
@@ -171,22 +192,6 @@
;; **** Things that can go in the integer registers.
- ;; Immediate descriptor objects. Don't have to be seen by GC, but nothing
- ;; bad will happen if they are. (fixnums, characters, header values, etc).
- (any-reg
- registers
- :locations #.(append non-descriptor-regs descriptor-regs)
- :constant-scs (zero immediate)
- :save-p t
- :alternate-scs (control-stack))
-
- ;; Pointer descriptor objects. Must be seen by GC.
- (descriptor-reg registers
- :locations #.descriptor-regs
- :constant-scs (constant null immediate)
- :save-p t
- :alternate-scs (control-stack))
-
;; Non-Descriptor characters
(character-reg registers
:locations #.non-descriptor-regs
|
| Thread | Author | Date |
|---|---|---|
| [Sbcl-commits] CVS: sbcl/src/compiler/sparc vm.lisp,1.11,1.12 | Nathan Froyd <nfroyd@us...> |