Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
-
1d74bf8d
by Raymond Toy at 2017-01-21T08:36:22-08:00
-
58c09b81
by Raymond Toy at 2017-01-21T08:37:02-08:00
6 changed files:
- src/compiler/sparc64/call.lisp
- src/compiler/sparc64/cell.lisp
- src/compiler/sparc64/insts.lisp
- src/compiler/sparc64/memory.lisp
- src/compiler/sparc64/move.lisp
- src/compiler/sparc64/print.lisp
Changes:
... | ... | @@ -171,6 +171,7 @@ |
171 | 171 |
;; Make sure the function is aligned, and drop a label pointing to this
|
172 | 172 |
;; function header.
|
173 | 173 |
(align vm:lowtag-bits)
|
174 |
+ (emit-not-implemented)
|
|
174 | 175 |
(trace-table-entry trace-table-function-prologue)
|
175 | 176 |
(emit-label start-lab)
|
176 | 177 |
;; Allocate function header.
|
... | ... | @@ -262,6 +263,7 @@ |
262 | 263 |
(:info nargs)
|
263 | 264 |
(:results (res :scs (any-reg)))
|
264 | 265 |
(:generator 2
|
266 |
+ (emit-not-implemented)
|
|
265 | 267 |
(when (> nargs register-arg-count)
|
266 | 268 |
(move res csp-tn)
|
267 | 269 |
(inst add csp-tn csp-tn (* nargs vm:word-bytes)))))
|
... | ... | @@ -774,6 +776,7 @@ default-value-8 |
774 | 776 |
15
|
775 | 777 |
(if (eq return :unknown) 25 0))
|
776 | 778 |
(trace-table-entry trace-table-call-site)
|
779 |
+ (emit-not-implemented)
|
|
777 | 780 |
(let* ((cur-nfp (current-nfp-tn vop))
|
778 | 781 |
,@(unless (eq return :tail)
|
779 | 782 |
'((lra-label (gen-label))))
|
... | ... | @@ -1271,6 +1274,7 @@ default-value-8 |
1271 | 1274 |
(:vop-var vop)
|
1272 | 1275 |
(:save-p :compute-only)
|
1273 | 1276 |
(:generator 3
|
1277 |
+ (emit-not-implemented)
|
|
1274 | 1278 |
(let ((err-lab
|
1275 | 1279 |
(generate-error-code vop invalid-argument-count-error nargs)))
|
1276 | 1280 |
(inst cmp nargs (fixnumize count))
|
... | ... | @@ -83,6 +83,7 @@ |
83 | 83 |
(define-vop (boundp boundp-frob)
|
84 | 84 |
(:translate boundp)
|
85 | 85 |
(:generator 9
|
86 |
+ (emit-not-implemented)
|
|
86 | 87 |
(loadw value object vm:symbol-value-slot vm:other-pointer-type)
|
87 | 88 |
(inst cmp value vm:unbound-marker-type)
|
88 | 89 |
(inst b (if not-p :eq :ne) target)
|
... | ... | @@ -2384,7 +2384,12 @@ about function addresses and register values.") |
2384 | 2384 |
(- other-pointer-type
|
2385 | 2385 |
function-pointer-type
|
2386 | 2386 |
(label-position label posn delta-if-after)
|
2387 |
- (component-header-length))))))
|
|
2387 |
+ ;; FIXME: component-header-length (and
|
|
2388 |
+ ;; maybe label-position?) return thw
|
|
2389 |
+ ;; wrong number of bytes. We need to
|
|
2390 |
+ ;; shift left by 1 because our words are
|
|
2391 |
+ ;; 64 bits long and not 32.
|
|
2392 |
+ (ash (component-header-length) 1))))))
|
|
2388 | 2393 |
|
2389 | 2394 |
;; code = lra - other-pointer-tag - header - label-offset + other-pointer-tag
|
2390 | 2395 |
(define-instruction compute-code-from-lra (segment dst src label temp)
|
... | ... | @@ -36,6 +36,7 @@ |
36 | 36 |
(:variant-vars offset lowtag)
|
37 | 37 |
(:policy :fast-safe)
|
38 | 38 |
(:generator 4
|
39 |
+ (emit-not-implemented)
|
|
39 | 40 |
(storew value object offset lowtag)))
|
40 | 41 |
|
41 | 42 |
;;; Slot-Ref and Slot-Set are used to define VOPs like Closure-Ref, where the
|
... | ... | @@ -25,6 +25,7 @@ |
25 | 25 |
((null immediate zero)
|
26 | 26 |
(any-reg descriptor-reg))
|
27 | 27 |
(let ((val (tn-value x)))
|
28 |
+ (not-implemented "LOAD-IMMEDIATE")
|
|
28 | 29 |
(etypecase val
|
29 | 30 |
(integer
|
30 | 31 |
(inst li y (fixnumize val)))
|
... | ... | @@ -121,6 +122,7 @@ |
121 | 122 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
122 | 123 |
(:results (y))
|
123 | 124 |
(:generator 0
|
125 |
+ (emit-not-implemented)
|
|
124 | 126 |
(sc-case y
|
125 | 127 |
((any-reg descriptor-reg)
|
126 | 128 |
(move y x))
|
... | ... | @@ -30,6 +30,7 @@ |
30 | 30 |
(:temporary (:sc control-stack :offset nfp-save-offset) nfp-save)
|
31 | 31 |
(:vop-var vop)
|
32 | 32 |
(:generator 100
|
33 |
+ (emit-not-implemented)
|
|
33 | 34 |
(let ((cur-nfp (current-nfp-tn vop)))
|
34 | 35 |
(when cur-nfp
|
35 | 36 |
(store-stack-tn nfp-save cur-nfp))
|