[Git][cmucl/cmucl][sparc64-dev] Replace li with v9 version
![](https://secure.gravatar.com/avatar/cc13150cabd87c26f35cb4b0ea78d66d.jpg?s=120&d=mm&r=g)
Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl Commits: 5e00e1dc by Raymond Toy at 2018-01-03T14:11:29-08:00 Replace li with v9 version Also Remove the old version that was 32-bit. - - - - - 1 changed file: - src/compiler/sparc64/insts.lisp Changes: ===================================== src/compiler/sparc64/insts.lisp ===================================== --- a/src/compiler/sparc64/insts.lisp +++ b/src/compiler/sparc64/insts.lisp @@ -2063,52 +2063,10 @@ about function addresses and register values.") ;;;; li, jali, ji, nop, cmp, not, neg, move, and more -#-sparc-v9 -(defun %li (reg value) - (etypecase value - ((signed-byte 13) - (inst add reg zero-tn value)) - ((or (signed-byte 32) (unsigned-byte 32)) - (let ((hi (ldb (byte 22 10) value)) - (lo (ldb (byte 10 0) value))) - (inst sethi reg hi) - (unless (zerop lo) - (inst add reg lo)))) - (fixup - (inst sethi reg value) - (inst add reg value)))) - -#+sparc-v9 -(defun %li (reg value) - (etypecase value - ((signed-byte 13) - (inst add reg zero-tn value)) - ((unsigned-byte 32) - (let ((hi (ldb (byte 22 10) value)) - (lo (ldb (byte 10 0) value))) - ;; Sethi sets the top 32-bits to zero. - (inst sethi reg hi) - (unless (zerop lo) - (inst add reg lo)))) - ((signed-byte 32) - (let ((hi (ldb (byte 22 10) value)) - (lo (ldb (byte 10 0) value))) - ;; Sethi sets the top 32-bits to zero. - (inst sethi reg hi) - (unless (zerop lo) - (inst add reg lo)) - ;; Sign-extend the result - (inst signx reg))) - (fixup - (inst sethi reg value) - (inst add reg value)))) - (define-instruction-macro li (reg value) `(%li ,reg ,value)) -#+sparc-v9 -(progn -(defun %li64 (reg value &optional temp) +(defun %li (reg value &optional temp) (etypecase value ((signed-byte 13) (inst add reg zero-tn value)) @@ -2168,10 +2126,6 @@ about function addresses and register values.") (inst sethi reg value) (inst add reg value)))) -(define-instruction-macro li64 (reg value &optional temp) - `(%li64 ,reg ,value ,temp)) - -) ;; Define LDN/STN synthetic instructions to do "natural" loads and ;; stores for 32-bit or 64-bit objects depending on whether this is a View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/5e00e1dc01a4e19469e10d2308... --- View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/5e00e1dc01a4e19469e10d2308... You're receiving this email because of your account on gitlab.common-lisp.net.
participants (1)
-
Raymond Toy