]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' into startup
authorDoug Coleman <doug.coleman@gmail.com>
Tue, 20 Oct 2009 19:01:06 +0000 (15:01 -0400)
committerDoug Coleman <doug.coleman@gmail.com>
Tue, 20 Oct 2009 19:01:06 +0000 (15:01 -0400)
1  2 
basis/cpu/x86/x86.factor

diff --combined basis/cpu/x86/x86.factor
index e6c95fcbff8846b4d65d46ddf4d21d936ded405c,4576956335918268f7d218249c0ff924f60e7cdd..1f5afffe5de49d110fdeec86257de507111ee612
@@@ -24,15 -24,20 +24,20 @@@ M: x86 vector-regs float-regs 
  
  HOOK: stack-reg cpu ( -- reg )
  
- HOOK: reserved-area-size cpu ( -- n )
+ HOOK: reserved-stack-space cpu ( -- n )
+ HOOK: extra-stack-space cpu ( stack-frame -- n )
  
  : stack@ ( n -- op ) stack-reg swap [+] ;
  
- : param@ ( n -- op ) reserved-area-size + stack@ ;
+ : special@ ( n -- op )
+     stack-frame get extra-stack-space +
+     reserved-stack-space +
+     stack@ ;
  
- : spill@ ( n -- op ) spill-offset param@ ;
+ : spill@ ( n -- op ) spill-offset special@ ;
  
- : gc-root@ ( n -- op ) gc-root-offset param@ ;
+ : gc-root@ ( n -- op ) gc-root-offset special@ ;
  
  : decr-stack-reg ( n -- )
      dup 0 = [ drop ] [ stack-reg swap SUB ] if ;
      os macosx? cpu x86.64? or [ 16 align ] when ;
  
  M: x86 stack-frame-size ( stack-frame -- i )
-     (stack-frame-size) 3 cells reserved-area-size + + align-stack ;
+     [ (stack-frame-size) ]
+     [ extra-stack-space ] bi +
+     reserved-stack-space +
+     3 cells +
+     align-stack ;
  
  ! Must be a volatile register not used for parameter passing, for safe
  ! use in calls in and out of C
@@@ -1362,7 -1371,7 +1371,7 @@@ enable-fixnum-log
              flush
              1 exit
          ] when
 -    ] "cpu.x86" add-init-hook ;
 +    ] "cpu.x86" add-startup-hook ;
  
  : enable-sse2 ( version -- )
      20 >= [