Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits: bd60cf13 by Raymond Toy at 2018-01-03T09:34:27-08:00 Split LOAD-IMMEDIATE into various parts
Use separate not-implemented for the various branchs of load-immediate to make it easier to tell what's being loaded.
Also add a few more not-implemented calls in places we missed.
- - - - -
1 changed file:
- src/compiler/sparc64/move.lisp
Changes:
===================================== src/compiler/sparc64/move.lisp ===================================== --- a/src/compiler/sparc64/move.lisp +++ b/src/compiler/sparc64/move.lisp @@ -25,15 +25,18 @@ ((null immediate zero) (any-reg descriptor-reg)) (let ((val (tn-value x))) - (not-implemented "LOAD-IMMEDIATE") (etypecase val (integer + (not-implemented "LOAD-IMMEDIATE/INTEGER") (inst li y (fixnumize val))) (null + (not-implemented "LOAD-IMMEDIATE/NULL") (move y null-tn)) (symbol + (not-implemented "LOAD-IMMEDIATE/SYMBOL") (load-symbol y val)) (character + (not-implemented "LOAD-IMMEDIATE/CHAR") (inst li y (logior (ash (char-code val) type-bits) base-char-type))))))
@@ -48,6 +51,7 @@ (define-move-function (load-number 1) (vop x y) ((immediate zero) (signed-reg unsigned-reg signed64-reg unsigned64-reg)) + (not-implemented "LOAD-NUMBER") (inst li64 y (tn-value x)))
(define-move-function (load-base-char 1) (vop x y) @@ -223,6 +227,7 @@ (:temporary (:scs (non-descriptor-reg)) temp) (:generator 4 (let ((done (gen-label))) + (emit-not-implemented) (inst andcc temp x fixnum-tag-mask) (inst signx temp x) ; sign-extend x to temp (inst b :eq done) @@ -333,6 +338,7 @@ (:temporary (:scs (non-descriptor-reg) :from (:argument 0)) x temp) (:note _N"unsigned word to integer coercion") (:generator 20 + (emit-not-implemented) (move x arg) (let ((done (gen-label))) (inst sran temp x positive-fixnum-bits)
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/bd60cf1358fdaba1d9ccee2abb...
--- View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/bd60cf1358fdaba1d9ccee2abb... You're receiving this email because of your account on gitlab.common-lisp.net.