projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.29.38: better DESCRIBE
[sbcl.git]
/
src
/
compiler
/
x86
/
nlx.lisp
diff --git
a/src/compiler/x86/nlx.lisp
b/src/compiler/x86/nlx.lisp
index
07d4032
..
96d2ca4
100644
(file)
--- a/
src/compiler/x86/nlx.lisp
+++ b/
src/compiler/x86/nlx.lisp
@@
-189,9
+189,10
@@
(storew edx-tn ebx-tn -1))
(sc-case tn
((descriptor-reg any-reg)
(storew edx-tn ebx-tn -1))
(sc-case tn
((descriptor-reg any-reg)
- (loadw tn start (frame-word-offset i)))
+ (loadw tn start (frame-word-offset (+ sp->fp-offset i))))
((control-stack)
((control-stack)
- (loadw move-temp start (frame-word-offset i))
+ (loadw move-temp start
+ (frame-word-offset (+ sp->fp-offset i)))
(inst mov tn move-temp)))))
(let ((defaulting-done (gen-label)))
(emit-label defaulting-done)
(inst mov tn move-temp)))))
(let ((defaulting-done (gen-label)))
(emit-label defaulting-done)
@@
-296,7
+297,8
@@
;; Clear the stack
(inst lea esp-tn
;; Clear the stack
(inst lea esp-tn
- (make-ea :dword :base ebp-tn :disp (* -3 n-word-bytes)))
+ (make-ea :dword :base ebp-tn
+ :disp (* (- sp->fp-offset 3) n-word-bytes)))
;; Push the return-pc so it looks like we just called.
(pushw ebp-tn (frame-word-offset return-pc-save-offset))
;; Push the return-pc so it looks like we just called.
(pushw ebp-tn (frame-word-offset return-pc-save-offset))