Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
-
5e00e1dc
by Raymond Toy at 2018-01-03T14:11:29-08:00
1 changed file:
Changes:
| ... | ... | @@ -2063,52 +2063,10 @@ about function addresses and register values.") |
| 2063 | 2063 |
|
| 2064 | 2064 |
;;;; li, jali, ji, nop, cmp, not, neg, move, and more
|
| 2065 | 2065 |
|
| 2066 |
-#-sparc-v9
|
|
| 2067 |
-(defun %li (reg value)
|
|
| 2068 |
- (etypecase value
|
|
| 2069 |
- ((signed-byte 13)
|
|
| 2070 |
- (inst add reg zero-tn value))
|
|
| 2071 |
- ((or (signed-byte 32) (unsigned-byte 32))
|
|
| 2072 |
- (let ((hi (ldb (byte 22 10) value))
|
|
| 2073 |
- (lo (ldb (byte 10 0) value)))
|
|
| 2074 |
- (inst sethi reg hi)
|
|
| 2075 |
- (unless (zerop lo)
|
|
| 2076 |
- (inst add reg lo))))
|
|
| 2077 |
- (fixup
|
|
| 2078 |
- (inst sethi reg value)
|
|
| 2079 |
- (inst add reg value))))
|
|
| 2080 |
- |
|
| 2081 |
-#+sparc-v9
|
|
| 2082 |
-(defun %li (reg value)
|
|
| 2083 |
- (etypecase value
|
|
| 2084 |
- ((signed-byte 13)
|
|
| 2085 |
- (inst add reg zero-tn value))
|
|
| 2086 |
- ((unsigned-byte 32)
|
|
| 2087 |
- (let ((hi (ldb (byte 22 10) value))
|
|
| 2088 |
- (lo (ldb (byte 10 0) value)))
|
|
| 2089 |
- ;; Sethi sets the top 32-bits to zero.
|
|
| 2090 |
- (inst sethi reg hi)
|
|
| 2091 |
- (unless (zerop lo)
|
|
| 2092 |
- (inst add reg lo))))
|
|
| 2093 |
- ((signed-byte 32)
|
|
| 2094 |
- (let ((hi (ldb (byte 22 10) value))
|
|
| 2095 |
- (lo (ldb (byte 10 0) value)))
|
|
| 2096 |
- ;; Sethi sets the top 32-bits to zero.
|
|
| 2097 |
- (inst sethi reg hi)
|
|
| 2098 |
- (unless (zerop lo)
|
|
| 2099 |
- (inst add reg lo))
|
|
| 2100 |
- ;; Sign-extend the result
|
|
| 2101 |
- (inst signx reg)))
|
|
| 2102 |
- (fixup
|
|
| 2103 |
- (inst sethi reg value)
|
|
| 2104 |
- (inst add reg value))))
|
|
| 2105 |
- |
|
| 2106 | 2066 |
(define-instruction-macro li (reg value)
|
| 2107 | 2067 |
`(%li ,reg ,value))
|
| 2108 | 2068 |
|
| 2109 |
-#+sparc-v9
|
|
| 2110 |
-(progn
|
|
| 2111 |
-(defun %li64 (reg value &optional temp)
|
|
| 2069 |
+(defun %li (reg value &optional temp)
|
|
| 2112 | 2070 |
(etypecase value
|
| 2113 | 2071 |
((signed-byte 13)
|
| 2114 | 2072 |
(inst add reg zero-tn value))
|
| ... | ... | @@ -2168,10 +2126,6 @@ about function addresses and register values.") |
| 2168 | 2126 |
(inst sethi reg value)
|
| 2169 | 2127 |
(inst add reg value))))
|
| 2170 | 2128 |
|
| 2171 |
-(define-instruction-macro li64 (reg value &optional temp)
|
|
| 2172 |
- `(%li64 ,reg ,value ,temp))
|
|
| 2173 |
- |
|
| 2174 |
-)
|
|
| 2175 | 2129 |
|
| 2176 | 2130 |
;; Define LDN/STN synthetic instructions to do "natural" loads and
|
| 2177 | 2131 |
;; stores for 32-bit or 64-bit objects depending on whether this is a
|