Skip to content

Commit

Permalink
Fix compiler bug which caused out-of-line internal continuation frame…
Browse files Browse the repository at this point in the history
…s to have incorrect frame descriptors.
  • Loading branch information
feeley committed Jan 15, 2010
1 parent 3bdc64f commit 02c1427
Show file tree
Hide file tree
Showing 4 changed files with 192 additions and 72 deletions.
12 changes: 5 additions & 7 deletions gsc/_t-c-2.scm
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
;;;============================================================================

;;; File: "_t-c-2.scm", Time-stamp: <2009-06-08 06:36:56 feeley>
;;; File: "_t-c-2.scm", Time-stamp: <2010-01-14 19:40:12 feeley>

;;; Copyright (c) 1994-2009 by Marc Feeley, All Rights Reserved.
;;; Copyright (c) 1994-2010 by Marc Feeley, All Rights Reserved.

(include "fixnum.scm")

Expand Down Expand Up @@ -937,11 +937,9 @@
(length regs))))
(list return-var)
(extend-vars '()
(- (- (targ-align-frame
(+ (+ targ-nb-gvm-regs 1)
targ-frame-reserve))
targ-frame-reserve)
(+ targ-nb-gvm-regs 1)))))
(let ((n (+ targ-nb-gvm-regs 1)))
(- (targ-align-frame-without-reserve n)
n)))))
(gc-map
(targ-build-gc-map
vars
Expand Down
16 changes: 12 additions & 4 deletions gsc/_t-c-3.scm
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
;;;============================================================================

;;; File: "_t-c-3.scm", Time-stamp: <2008-04-12 10:08:26 feeley>
;;; File: "_t-c-3.scm", Time-stamp: <2010-01-14 19:40:19 feeley>

;;; Copyright (c) 1994-2008 by Marc Feeley, All Rights Reserved.
;;; Copyright (c) 1994-2010 by Marc Feeley, All Rights Reserved.

(include "generic.scm")

Expand Down Expand Up @@ -476,14 +476,22 @@

(define (targ-actual-fs kind fs)
(if (eq? kind 'internal)
(+ (targ-align-frame fs) (+ targ-nb-gvm-regs 1))
fs))
(targ-internal-fs fs)
fs))

(define (targ-internal-fs fs)
(+ (targ-align-frame fs)
(targ-align-frame-without-reserve (+ targ-nb-gvm-regs 1))))

(define (targ-align-frame fs)
(* (quotient (+ fs (- targ-frame-alignment 1))
targ-frame-alignment)
targ-frame-alignment))

(define (targ-align-frame-without-reserve fs)
(- (targ-align-frame (+ fs targ-frame-reserve))
targ-frame-reserve))

(define targ-min-word-size-in-bits
(* targ-min-word-size targ-bits-per-byte))

Expand Down
4 changes: 2 additions & 2 deletions include/stamp.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
* Time stamp of last source code repository commit.
*/

#define ___STAMP_YMD 20100107
#define ___STAMP_HMS 170955
#define ___STAMP_YMD 20100115
#define ___STAMP_HMS 40636
Loading

0 comments on commit 02c1427

Please sign in to comment.