Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
-
aae9e027
by Raymond Toy at 2018-01-02T21:22:18-08:00
-
f52af343
by Raymond Toy at 2018-01-02T21:22:52-08:00
6 changed files:
- src/compiler/sparc64/alloc.lisp
- src/compiler/sparc64/arith.lisp
- src/compiler/sparc64/array.lisp
- src/compiler/sparc64/c-call.lisp
- src/compiler/sparc64/call.lisp
- src/compiler/sparc64/memory.lisp
Changes:
... | ... | @@ -61,6 +61,7 @@ |
61 | 61 |
(:variant-vars star)
|
62 | 62 |
(:policy :safe)
|
63 | 63 |
(:generator 0
|
64 |
+ (emit-not-implemented)
|
|
64 | 65 |
(cond ((zerop num)
|
65 | 66 |
(move result null-tn))
|
66 | 67 |
((and star (= num 1))
|
... | ... | @@ -116,6 +117,7 @@ |
116 | 117 |
(:temporary (:scs (any-reg) :from (:argument 0)) boxed)
|
117 | 118 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) unboxed)
|
118 | 119 |
(:generator 100
|
120 |
+ (emit-not-implemented)
|
|
119 | 121 |
(inst add boxed boxed-arg (fixnumize (1+ code-trace-table-offset-slot)))
|
120 | 122 |
(inst and boxed (lognot lowtag-mask))
|
121 | 123 |
(inst srln unboxed unboxed-arg word-shift)
|
... | ... | @@ -139,6 +141,7 @@ |
139 | 141 |
(:policy :fast-safe)
|
140 | 142 |
(:translate make-fdefn)
|
141 | 143 |
(:generator 37
|
144 |
+ (emit-not-implemented)
|
|
142 | 145 |
(with-fixed-allocation (result temp fdefn-type fdefn-size)
|
143 | 146 |
;; For the linkage-table stuff, we need to look up the address
|
144 | 147 |
;; of undefined_tramp from the linkage table instead of using
|
... | ... | @@ -156,6 +159,7 @@ |
156 | 159 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
157 | 160 |
(:results (result :scs (descriptor-reg)))
|
158 | 161 |
(:generator 10
|
162 |
+ (emit-not-implemented)
|
|
159 | 163 |
(let ((size (+ length closure-info-offset)))
|
160 | 164 |
(with-fixed-allocation (result temp closure-header-type size
|
161 | 165 |
:lowtag function-pointer-type
|
... | ... | @@ -169,6 +173,7 @@ |
169 | 173 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
170 | 174 |
(:results (result :scs (descriptor-reg)))
|
171 | 175 |
(:generator 10
|
176 |
+ (emit-not-implemented)
|
|
172 | 177 |
(with-fixed-allocation
|
173 | 178 |
(result temp value-cell-header-type value-cell-size)
|
174 | 179 |
(storew value result value-cell-value-slot other-pointer-type))))
|
... | ... | @@ -181,6 +186,7 @@ |
181 | 186 |
(:args)
|
182 | 187 |
(:results (result :scs (any-reg)))
|
183 | 188 |
(:generator 1
|
189 |
+ (emit-not-implemented)
|
|
184 | 190 |
(inst li result unbound-marker-type)))
|
185 | 191 |
|
186 | 192 |
(define-vop (fixed-alloc)
|
... | ... | @@ -190,6 +196,7 @@ |
190 | 196 |
(:results (result :scs (descriptor-reg)))
|
191 | 197 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
192 | 198 |
(:generator 4
|
199 |
+ (emit-not-implemented)
|
|
193 | 200 |
(with-fixed-allocation (result temp type words :lowtag lowtag :stack-p dynamic-extent)
|
194 | 201 |
)))
|
195 | 202 |
|
... | ... | @@ -203,6 +210,7 @@ |
203 | 210 |
(:temporary (:scs (non-descriptor-reg)) header)
|
204 | 211 |
(:temporary (:scs (any-reg)) temp)
|
205 | 212 |
(:generator 6
|
213 |
+ (emit-not-implemented)
|
|
206 | 214 |
(inst add bytes extra (* (1+ words) word-bytes))
|
207 | 215 |
(inst slln header bytes (- type-bits vm:fixnum-tag-bits)) ; because bytes is already a fixnum
|
208 | 216 |
(inst add header header (+ (ash -2 type-bits) type))
|
... | ... | @@ -336,6 +336,7 @@ |
336 | 336 |
(and (backend-featurep :sparc-v9)
|
337 | 337 |
(not (backend-featurep :sparc-64)))))
|
338 | 338 |
(:generator 12
|
339 |
+ (emit-not-implemented)
|
|
339 | 340 |
(let ((zero (generate-error-code vop division-by-zero-error x y)))
|
340 | 341 |
(inst cmp y zero-tn)
|
341 | 342 |
(inst b :eq zero #+sparc-v9 :pn)
|
... | ... | @@ -370,6 +371,7 @@ |
370 | 371 |
(and (backend-featurep :sparc-v9)
|
371 | 372 |
(not (backend-featurep :sparc-64)))))
|
372 | 373 |
(:generator 8
|
374 |
+ (emit-not-implemented)
|
|
373 | 375 |
(let ((zero (generate-error-code vop division-by-zero-error x y)))
|
374 | 376 |
(inst cmp y zero-tn)
|
375 | 377 |
(inst b :eq zero #+sparc-v9 :pn)
|
... | ... | @@ -400,6 +402,7 @@ |
400 | 402 |
(:save-p :compute-only)
|
401 | 403 |
(:guard (backend-featurep :sparc-64))
|
402 | 404 |
(:generator 8
|
405 |
+ (emit-not-implemented)
|
|
403 | 406 |
(let ((zero (generate-error-code vop division-by-zero-error x y)))
|
404 | 407 |
(inst cmp y zero-tn)
|
405 | 408 |
(inst b :eq zero :pn)
|
... | ... | @@ -456,6 +459,7 @@ |
456 | 459 |
(:save-p :compute-only)
|
457 | 460 |
(:guard (backend-featurep :sparc-64))
|
458 | 461 |
(:generator 8
|
462 |
+ (emit-not-implemented)
|
|
459 | 463 |
(let ((zero (generate-error-code vop division-by-zero-error x y)))
|
460 | 464 |
(inst cmp y zero-tn)
|
461 | 465 |
(inst b :eq zero :pn)
|
... | ... | @@ -482,6 +486,7 @@ |
482 | 486 |
(:policy :fast-safe)
|
483 | 487 |
(:temporary (:sc non-descriptor-reg) ndesc)
|
484 | 488 |
(:generator 5
|
489 |
+ (emit-not-implemented)
|
|
485 | 490 |
(sc-case amount
|
486 | 491 |
(signed-reg
|
487 | 492 |
(cond ((backend-featurep :sparc-v9)
|
... | ... | @@ -539,6 +544,7 @@ |
539 | 544 |
(:policy :fast-safe)
|
540 | 545 |
(:temporary (:sc non-descriptor-reg) ndesc)
|
541 | 546 |
(:generator 5
|
547 |
+ (emit-not-implemented)
|
|
542 | 548 |
(sc-case amount
|
543 | 549 |
(signed-reg
|
544 | 550 |
(cond ((backend-featurep :sparc-v9)
|
... | ... | @@ -594,6 +600,7 @@ |
594 | 600 |
(:translate ash)
|
595 | 601 |
(:policy :fast-safe)
|
596 | 602 |
(:generator 4
|
603 |
+ (emit-not-implemented)
|
|
597 | 604 |
(cond
|
598 | 605 |
((< count -31) (move result zero-tn))
|
599 | 606 |
((< count 0) (inst srl result number (min (- count) 31)))
|
... | ... | @@ -614,6 +621,7 @@ |
614 | 621 |
(:result-types ,type)
|
615 | 622 |
(:policy :fast-safe)
|
616 | 623 |
(:generator ,cost
|
624 |
+ (emit-not-implemented)
|
|
617 | 625 |
;; The result-type assures us that this shift will not
|
618 | 626 |
;; overflow. And for fixnum's, the zero bits that get
|
619 | 627 |
;; shifted in are just fine for the fixnum tag.
|
... | ... | @@ -642,6 +650,7 @@ |
642 | 650 |
(:result-types ,type)
|
643 | 651 |
(:policy :fast-safe)
|
644 | 652 |
(:generator ,cost
|
653 |
+ (emit-not-implemented)
|
|
645 | 654 |
;; The result-type assures us that this shift will not
|
646 | 655 |
;; overflow. And for fixnum's, the zero bits that get
|
647 | 656 |
;; shifted in are just fine for the fixnum tag.
|
... | ... | @@ -716,6 +725,7 @@ |
716 | 725 |
(:result-types ,type)
|
717 | 726 |
(:policy :fast-safe)
|
718 | 727 |
(:generator ,cost
|
728 |
+ (emit-not-implemented)
|
|
719 | 729 |
(sc-case amount
|
720 | 730 |
((signed-reg unsigned-reg)
|
721 | 731 |
(inst ,shift-inst result number amount))
|
... | ... | @@ -748,6 +758,7 @@ |
748 | 758 |
(:result-types ,type)
|
749 | 759 |
(:policy :fast-safe)
|
750 | 760 |
(:generator ,cost
|
761 |
+ (emit-not-implemented)
|
|
751 | 762 |
(if (zerop amount)
|
752 | 763 |
(move result number)
|
753 | 764 |
(inst ,shift-inst result number amount))))))
|
... | ... | @@ -789,6 +800,7 @@ |
789 | 800 |
(:temporary (:sc non-descriptor-reg :target result) temp)
|
790 | 801 |
(:policy :fast-safe)
|
791 | 802 |
(:generator 2
|
803 |
+ (emit-not-implemented)
|
|
792 | 804 |
;; Shift the fixnum right by the desired amount. Then zap out the
|
793 | 805 |
;; 2 LSBs to make it a fixnum again. (Those bits are junk.)
|
794 | 806 |
(sc-case amount
|
... | ... | @@ -811,6 +823,7 @@ |
811 | 823 |
(:result-types positive-fixnum)
|
812 | 824 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 0)) shift)
|
813 | 825 |
(:generator 30
|
826 |
+ (emit-not-implemented)
|
|
814 | 827 |
(let ((loop (gen-label))
|
815 | 828 |
(test (gen-label)))
|
816 | 829 |
(inst addcc shift zero-tn arg)
|
... | ... | @@ -837,6 +850,7 @@ |
837 | 850 |
(:result-types positive-fixnum)
|
838 | 851 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 0)) shift)
|
839 | 852 |
(:generator 30
|
853 |
+ (emit-not-implemented)
|
|
840 | 854 |
(let ((loop (gen-label))
|
841 | 855 |
(test (gen-label)))
|
842 | 856 |
(move shift arg)
|
... | ... | @@ -862,6 +876,7 @@ |
862 | 876 |
(:result-types positive-fixnum)
|
863 | 877 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 0)) mask temp)
|
864 | 878 |
(:generator 35
|
879 |
+ (emit-not-implemented)
|
|
865 | 880 |
(move res arg)
|
866 | 881 |
|
867 | 882 |
(dolist (stuff '((1 #x55555555) (2 #x33333333) (4 #x0f0f0f0f)
|
... | ... | @@ -886,6 +901,7 @@ |
886 | 901 |
(and (backend-featurep :sparc-v9)
|
887 | 902 |
(not (backend-featurep :sparc-64)))))
|
888 | 903 |
(:generator 2
|
904 |
+ (emit-not-implemented)
|
|
889 | 905 |
;; The cost here should be less than the cost for
|
890 | 906 |
;; */signed=>signed. Why? A fixnum product using signed=>signed
|
891 | 907 |
;; has to convert both args to signed-nums. But using this, we
|
... | ... | @@ -900,6 +916,7 @@ |
900 | 916 |
(and (backend-featurep :sparc-v9)
|
901 | 917 |
(not (backend-featurep :sparc-64)))))
|
902 | 918 |
(:generator 2
|
919 |
+ (emit-not-implemented)
|
|
903 | 920 |
(inst umul r x y)))
|
904 | 921 |
|
905 | 922 |
(define-vop (fast-v8-*-c/signed=>signed fast-signed-binop-c)
|
... | ... | @@ -908,6 +925,7 @@ |
908 | 925 |
(and (backend-featurep :sparc-v9)
|
909 | 926 |
(not (backend-featurep :sparc-64)))))
|
910 | 927 |
(:generator 2
|
928 |
+ (emit-not-implemented)
|
|
911 | 929 |
(inst smul r x y)))
|
912 | 930 |
|
913 | 931 |
(define-vop (fast-v8-*-c/fixnum=>fixnum fast-safe-arith-op)
|
... | ... | @@ -923,6 +941,7 @@ |
923 | 941 |
(and (backend-featurep :sparc-v9)
|
924 | 942 |
(not (backend-featurep :sparc-64)))))
|
925 | 943 |
(:generator 1
|
944 |
+ (emit-not-implemented)
|
|
926 | 945 |
(inst smul r x y)))
|
927 | 946 |
|
928 | 947 |
|
... | ... | @@ -932,6 +951,7 @@ |
932 | 951 |
(and (backend-featurep :sparc-v9)
|
933 | 952 |
(not (backend-featurep :sparc-64)))))
|
934 | 953 |
(:generator 3
|
954 |
+ (emit-not-implemented)
|
|
935 | 955 |
(inst smul r x y)))
|
936 | 956 |
|
937 | 957 |
(define-vop (fast-v8-*/unsigned=>unsigned fast-unsigned-binop)
|
... | ... | @@ -940,6 +960,7 @@ |
940 | 960 |
(and (backend-featurep :sparc-v9)
|
941 | 961 |
(not (backend-featurep :sparc-64)))))
|
942 | 962 |
(:generator 3
|
963 |
+ (emit-not-implemented)
|
|
943 | 964 |
(inst umul r x y)))
|
944 | 965 |
|
945 | 966 |
;; The smul and umul instructions are deprecated on the Sparc V9. Use
|
... | ... | @@ -949,6 +970,7 @@ |
949 | 970 |
(:translate *)
|
950 | 971 |
(:guard (backend-featurep :sparc-64))
|
951 | 972 |
(:generator 4
|
973 |
+ (emit-not-implemented)
|
|
952 | 974 |
(inst sran temp y fixnum-tag-bits)
|
953 | 975 |
(inst mulx r x temp)))
|
954 | 976 |
|
... | ... | @@ -956,12 +978,14 @@ |
956 | 978 |
(:translate *)
|
957 | 979 |
(:guard (backend-featurep :sparc-64))
|
958 | 980 |
(:generator 3
|
981 |
+ (emit-not-implemented)
|
|
959 | 982 |
(inst mulx r x y)))
|
960 | 983 |
|
961 | 984 |
(define-vop (fast-v9-*/unsigned=>unsigned fast-unsigned-binop)
|
962 | 985 |
(:translate *)
|
963 | 986 |
(:guard (backend-featurep :sparc-64))
|
964 | 987 |
(:generator 3
|
988 |
+ (emit-not-implemented)
|
|
965 | 989 |
(inst mulx r x y)))
|
966 | 990 |
|
967 | 991 |
|
... | ... | @@ -1028,6 +1052,7 @@ |
1028 | 1052 |
suffix)))
|
1029 | 1053 |
(:translate ,tran)
|
1030 | 1054 |
(:generator ,cost
|
1055 |
+ (emit-not-implemented)
|
|
1031 | 1056 |
(inst cmp x
|
1032 | 1057 |
,(if (eq suffix '-c/fixnum) '(fixnumize y) 'y))
|
1033 | 1058 |
(inst b (if not-p
|
... | ... | @@ -1062,6 +1087,7 @@ |
1062 | 1087 |
(:note _N"inline fixnum comparison")
|
1063 | 1088 |
(:translate eql)
|
1064 | 1089 |
(:generator 4
|
1090 |
+ (emit-not-implemented)
|
|
1065 | 1091 |
(inst cmp x y)
|
1066 | 1092 |
(inst b (if not-p :ne :eq) target)
|
1067 | 1093 |
(inst nop)))
|
... | ... | @@ -1078,6 +1104,7 @@ |
1078 | 1104 |
(:info target not-p y)
|
1079 | 1105 |
(:translate eql)
|
1080 | 1106 |
(:generator 2
|
1107 |
+ (emit-not-implemented)
|
|
1081 | 1108 |
(inst cmp x (fixnumize y))
|
1082 | 1109 |
(inst b (if not-p :ne :eq) target)
|
1083 | 1110 |
(inst nop)))
|
... | ... | @@ -1103,6 +1130,7 @@ |
1103 | 1130 |
(:result-types unsigned-num)
|
1104 | 1131 |
(:policy :fast-safe)
|
1105 | 1132 |
(:generator 4
|
1133 |
+ (emit-not-implemented)
|
|
1106 | 1134 |
(let ((done (gen-label)))
|
1107 | 1135 |
(inst cmp shift)
|
1108 | 1136 |
(inst b :eq done)
|
... | ... | @@ -1127,11 +1155,13 @@ |
1127 | 1155 |
(:args (x :scs (unsigned-reg zero)))
|
1128 | 1156 |
(:arg-types unsigned-num)
|
1129 | 1157 |
(:generator 1
|
1158 |
+ (emit-not-implemented)
|
|
1130 | 1159 |
(inst not r x)))
|
1131 | 1160 |
|
1132 | 1161 |
(define-vop (32bit-logical-and 32bit-logical)
|
1133 | 1162 |
(:translate 32bit-logical-and)
|
1134 | 1163 |
(:generator 1
|
1164 |
+ (emit-not-implemented)
|
|
1135 | 1165 |
(inst and r x y)))
|
1136 | 1166 |
|
1137 | 1167 |
(deftransform 32bit-logical-nand ((x y) (* *))
|
... | ... | @@ -1140,6 +1170,7 @@ |
1140 | 1170 |
(define-vop (32bit-logical-or 32bit-logical)
|
1141 | 1171 |
(:translate 32bit-logical-or)
|
1142 | 1172 |
(:generator 1
|
1173 |
+ (emit-not-implemented)
|
|
1143 | 1174 |
(inst or r x y)))
|
1144 | 1175 |
|
1145 | 1176 |
(deftransform 32bit-logical-nor ((x y) (* *))
|
... | ... | @@ -1148,6 +1179,7 @@ |
1148 | 1179 |
(define-vop (32bit-logical-xor 32bit-logical)
|
1149 | 1180 |
(:translate 32bit-logical-xor)
|
1150 | 1181 |
(:generator 1
|
1182 |
+ (emit-not-implemented)
|
|
1151 | 1183 |
(inst xor r x y)))
|
1152 | 1184 |
|
1153 | 1185 |
(define-vop (32bit-logical-eqv 32bit-logical)
|
... | ... | @@ -1158,6 +1190,7 @@ |
1158 | 1190 |
(define-vop (32bit-logical-orc2 32bit-logical)
|
1159 | 1191 |
(:translate 32bit-logical-orc2)
|
1160 | 1192 |
(:generator 1
|
1193 |
+ (emit-not-implemented)
|
|
1161 | 1194 |
(inst orn r x y)))
|
1162 | 1195 |
|
1163 | 1196 |
(deftransform 32bit-logical-orc1 ((x y) (* *))
|
... | ... | @@ -1166,6 +1199,7 @@ |
1166 | 1199 |
(define-vop (32bit-logical-andc2 32bit-logical)
|
1167 | 1200 |
(:translate 32bit-logical-andc2)
|
1168 | 1201 |
(:generator 1
|
1202 |
+ (emit-not-implemented)
|
|
1169 | 1203 |
(inst andn r x y)))
|
1170 | 1204 |
|
1171 | 1205 |
(deftransform 32bit-logical-andc1 ((x y) (* *))
|
... | ... | @@ -1184,12 +1218,14 @@ |
1184 | 1218 |
(:translate shift-towards-start)
|
1185 | 1219 |
(:note _N"shift-towards-start")
|
1186 | 1220 |
(:generator 1
|
1221 |
+ (emit-not-implemented)
|
|
1187 | 1222 |
(inst slln r num amount)))
|
1188 | 1223 |
|
1189 | 1224 |
(define-vop (shift-towards-end shift-towards-someplace)
|
1190 | 1225 |
(:translate shift-towards-end)
|
1191 | 1226 |
(:note _N"shift-towards-end")
|
1192 | 1227 |
(:generator 1
|
1228 |
+ (emit-not-implemented)
|
|
1193 | 1229 |
(inst srln r num amount)))
|
1194 | 1230 |
|
1195 | 1231 |
|
... | ... | @@ -1229,6 +1265,7 @@ |
1229 | 1265 |
(:results (result :scs (descriptor-reg)))
|
1230 | 1266 |
(:guard (not (backend-featurep :sparc-v9)))
|
1231 | 1267 |
(:generator 3
|
1268 |
+ (emit-not-implemented)
|
|
1232 | 1269 |
(let ((done (gen-label)))
|
1233 | 1270 |
(inst cmp digit)
|
1234 | 1271 |
(inst b :lt done)
|
... | ... | @@ -1244,6 +1281,7 @@ |
1244 | 1281 |
(:results (result :scs (descriptor-reg)))
|
1245 | 1282 |
(:guard (backend-featurep :sparc-v9))
|
1246 | 1283 |
(:generator 3
|
1284 |
+ (emit-not-implemented)
|
|
1247 | 1285 |
(inst cmp digit)
|
1248 | 1286 |
(load-symbol result t)
|
1249 | 1287 |
(inst cmove :lt result null-tn)))
|
... | ... | @@ -1275,6 +1313,7 @@ |
1275 | 1313 |
(carry :scs (unsigned-reg)))
|
1276 | 1314 |
(:result-types unsigned-num positive-fixnum)
|
1277 | 1315 |
(:generator 3
|
1316 |
+ (emit-not-implemented)
|
|
1278 | 1317 |
(inst addcc zero-tn c -1)
|
1279 | 1318 |
(inst addxcc result a b)
|
1280 | 1319 |
(inst addx carry zero-tn zero-tn)))
|
... | ... | @@ -1290,6 +1329,7 @@ |
1290 | 1329 |
(borrow :scs (unsigned-reg)))
|
1291 | 1330 |
(:result-types unsigned-num positive-fixnum)
|
1292 | 1331 |
(:generator 4
|
1332 |
+ (emit-not-implemented)
|
|
1293 | 1333 |
(inst subcc zero-tn c 1)
|
1294 | 1334 |
(inst subxcc result a b)
|
1295 | 1335 |
(inst addx borrow zero-tn zero-tn)
|
... | ... | @@ -1357,6 +1397,7 @@ |
1357 | 1397 |
(lo :scs (unsigned-reg) :from (:eval 1)))
|
1358 | 1398 |
(:result-types unsigned-num unsigned-num)
|
1359 | 1399 |
(:generator 40
|
1400 |
+ (emit-not-implemented)
|
|
1360 | 1401 |
(emit-multiply x y hi lo)
|
1361 | 1402 |
(inst addcc lo carry-in)
|
1362 | 1403 |
(inst addx hi zero-tn)))
|
... | ... | @@ -1373,6 +1414,7 @@ |
1373 | 1414 |
(lo :scs (unsigned-reg) :from (:eval 1)))
|
1374 | 1415 |
(:result-types unsigned-num unsigned-num)
|
1375 | 1416 |
(:generator 40
|
1417 |
+ (emit-not-implemented)
|
|
1376 | 1418 |
(emit-multiply x y hi lo)
|
1377 | 1419 |
(inst addcc lo carry-in)
|
1378 | 1420 |
(inst addx hi zero-tn)
|
... | ... | @@ -1389,6 +1431,7 @@ |
1389 | 1431 |
(lo :scs (unsigned-reg)))
|
1390 | 1432 |
(:result-types unsigned-num unsigned-num)
|
1391 | 1433 |
(:generator 40
|
1434 |
+ (emit-not-implemented)
|
|
1392 | 1435 |
(emit-multiply x y hi lo)))
|
1393 | 1436 |
|
1394 | 1437 |
(define-vop (bignum-lognot)
|
... | ... | @@ -1399,6 +1442,7 @@ |
1399 | 1442 |
(:results (r :scs (unsigned-reg)))
|
1400 | 1443 |
(:result-types unsigned-num)
|
1401 | 1444 |
(:generator 1
|
1445 |
+ (emit-not-implemented)
|
|
1402 | 1446 |
(inst not r x)))
|
1403 | 1447 |
|
1404 | 1448 |
(define-vop (fixnum-to-digit)
|
... | ... | @@ -1409,6 +1453,7 @@ |
1409 | 1453 |
(:results (digit :scs (unsigned-reg)))
|
1410 | 1454 |
(:result-types unsigned-num)
|
1411 | 1455 |
(:generator 1
|
1456 |
+ (emit-not-implemented)
|
|
1412 | 1457 |
(inst sran digit fixnum fixnum-tag-bits)))
|
1413 | 1458 |
|
1414 | 1459 |
(define-vop (bignum-floor)
|
... | ... | @@ -1424,6 +1469,7 @@ |
1424 | 1469 |
(:guard (not (or (backend-featurep :sparc-v8)
|
1425 | 1470 |
(backend-featurep :sparc-v9))))
|
1426 | 1471 |
(:generator 300
|
1472 |
+ (emit-not-implemented)
|
|
1427 | 1473 |
(move rem div-high)
|
1428 | 1474 |
(move quo div-low)
|
1429 | 1475 |
(dotimes (i 33)
|
... | ... | @@ -1454,6 +1500,7 @@ |
1454 | 1500 |
(and (backend-featurep :sparc-v9)
|
1455 | 1501 |
(not (backend-featurep :sparc-64)))))
|
1456 | 1502 |
(:generator 15
|
1503 |
+ (emit-not-implemented)
|
|
1457 | 1504 |
(inst wry div-high)
|
1458 | 1505 |
(inst nop)
|
1459 | 1506 |
(inst nop)
|
... | ... | @@ -1480,6 +1527,7 @@ |
1480 | 1527 |
(:result-types unsigned-num unsigned-num)
|
1481 | 1528 |
(:guard (backend-featurep :sparc-64))
|
1482 | 1529 |
(:generator 5
|
1530 |
+ (emit-not-implemented)
|
|
1483 | 1531 |
;; Set dividend to be div-high and div-low
|
1484 | 1532 |
(inst sllx dividend div-high 32)
|
1485 | 1533 |
(inst add dividend div-low)
|
... | ... | @@ -1497,6 +1545,7 @@ |
1497 | 1545 |
(:results (res :scs (any-reg signed-reg)))
|
1498 | 1546 |
(:result-types signed-num)
|
1499 | 1547 |
(:generator 1
|
1548 |
+ (emit-not-implemented)
|
|
1500 | 1549 |
(sc-case res
|
1501 | 1550 |
(any-reg
|
1502 | 1551 |
(inst slln res digit fixnum-tag-bits))
|
... | ... | @@ -1513,6 +1562,7 @@ |
1513 | 1562 |
(:results (result :scs (unsigned-reg)))
|
1514 | 1563 |
(:result-types unsigned-num)
|
1515 | 1564 |
(:generator 1
|
1565 |
+ (emit-not-implemented)
|
|
1516 | 1566 |
(sc-case count
|
1517 | 1567 |
((signed-reg unsigned-reg)
|
1518 | 1568 |
(inst sran result digit count))
|
... | ... | @@ -1522,6 +1572,7 @@ |
1522 | 1572 |
(define-vop (digit-lshr digit-ashr)
|
1523 | 1573 |
(:translate bignum::%digit-logical-shift-right)
|
1524 | 1574 |
(:generator 1
|
1575 |
+ (emit-not-implemented)
|
|
1525 | 1576 |
(sc-case count
|
1526 | 1577 |
((signed-reg unsigned-reg)
|
1527 | 1578 |
(inst srln result digit count))
|
... | ... | @@ -1531,6 +1582,7 @@ |
1531 | 1582 |
(define-vop (digit-ashl digit-ashr)
|
1532 | 1583 |
(:translate bignum::%ashl)
|
1533 | 1584 |
(:generator 1
|
1585 |
+ (emit-not-implemented)
|
|
1534 | 1586 |
(sc-case count
|
1535 | 1587 |
((signed-reg unsigned-reg)
|
1536 | 1588 |
(inst slln result digit count))
|
... | ... | @@ -1758,7 +1810,7 @@ |
1758 | 1810 |
|
1759 | 1811 |
;; Unary operations
|
1760 | 1812 |
|
1761 |
-#+(and sparc-v9 sparc-v8plus)
|
|
1813 |
+#+(and nil sparc-v9 sparc-v8plus)
|
|
1762 | 1814 |
(progn
|
1763 | 1815 |
|
1764 | 1816 |
;;; The vops for the 64-bit operations are written this way because I
|
... | ... | @@ -32,6 +32,7 @@ |
32 | 32 |
(:temporary (:scs (non-descriptor-reg)) gc-temp) ; gencgc
|
33 | 33 |
(:results (result :scs (descriptor-reg)))
|
34 | 34 |
(:generator 0
|
35 |
+ (emit-not-implemented)
|
|
35 | 36 |
(pseudo-atomic ()
|
36 | 37 |
(inst add ndescr rank (* (1+ array-dimensions-offset) vm:word-bytes))
|
37 | 38 |
(inst andn ndescr 4)
|
... | ... | @@ -74,6 +75,7 @@ |
74 | 75 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
75 | 76 |
(:results (res :scs (any-reg descriptor-reg)))
|
76 | 77 |
(:generator 6
|
78 |
+ (emit-not-implemented)
|
|
77 | 79 |
(loadw temp x 0 vm:other-pointer-type)
|
78 | 80 |
(inst sra temp vm:type-bits)
|
79 | 81 |
(inst sub temp (1- vm:array-dimensions-offset))
|
... | ... | @@ -94,6 +96,7 @@ |
94 | 96 |
(:vop-var vop)
|
95 | 97 |
(:save-p :compute-only)
|
96 | 98 |
(:generator 5
|
99 |
+ (emit-not-implemented)
|
|
97 | 100 |
(let ((error (generate-error-code vop invalid-array-index-error
|
98 | 101 |
array bound index)))
|
99 | 102 |
(inst cmp index bound)
|
... | ... | @@ -185,6 +188,7 @@ |
185 | 188 |
(:result-types positive-fixnum)
|
186 | 189 |
(:temporary (:scs (non-descriptor-reg) :to (:result 0)) temp result)
|
187 | 190 |
(:generator 20
|
191 |
+ (emit-not-implemented)
|
|
188 | 192 |
;; temp = floor(index bit-shift), to get address of word
|
189 | 193 |
;; containing our bits.
|
190 | 194 |
(inst srln temp index ,bit-shift)
|
... | ... | @@ -352,6 +356,7 @@ |
352 | 356 |
(:temporary (:scs (non-descriptor-reg)) offset)
|
353 | 357 |
(:result-types single-float)
|
354 | 358 |
(:generator 5
|
359 |
+ (emit-not-implemented)
|
|
355 | 360 |
(inst add offset index (- (* vm:vector-data-offset vm:word-bytes)
|
356 | 361 |
vm:other-pointer-type))
|
357 | 362 |
(inst ldf value object offset)))
|
... | ... | @@ -367,6 +372,7 @@ |
367 | 372 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
368 | 373 |
(:result-types single-float)
|
369 | 374 |
(:generator 3
|
375 |
+ (emit-not-implemented)
|
|
370 | 376 |
(let ((offset (+ (fixnumize index)
|
371 | 377 |
(- (* vm:vector-data-offset vm:word-bytes)
|
372 | 378 |
vm:other-pointer-type))))
|
... | ... | @@ -389,6 +395,7 @@ |
389 | 395 |
(:result-types single-float)
|
390 | 396 |
(:temporary (:scs (non-descriptor-reg)) offset)
|
391 | 397 |
(:generator 5
|
398 |
+ (emit-not-implemented)
|
|
392 | 399 |
(inst add offset index
|
393 | 400 |
(- (* vm:vector-data-offset vm:word-bytes)
|
394 | 401 |
vm:other-pointer-type))
|
... | ... | @@ -410,6 +417,7 @@ |
410 | 417 |
(:result-types single-float)
|
411 | 418 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
412 | 419 |
(:generator 2
|
420 |
+ (emit-not-implemented)
|
|
413 | 421 |
(let ((offset (+ (fixnumize index)
|
414 | 422 |
(- (* vm:vector-data-offset vm:word-bytes)
|
415 | 423 |
vm:other-pointer-type))))
|
... | ... | @@ -432,6 +440,7 @@ |
432 | 440 |
(:result-types double-float)
|
433 | 441 |
(:temporary (:scs (non-descriptor-reg)) offset)
|
434 | 442 |
(:generator 7
|
443 |
+ (emit-not-implemented)
|
|
435 | 444 |
(inst slln offset index (- 3 fixnum-tag-bits))
|
436 | 445 |
(inst add offset (- (* vm:vector-data-offset vm:word-bytes)
|
437 | 446 |
vm:other-pointer-type))
|
... | ... | @@ -448,6 +457,7 @@ |
448 | 457 |
(:result-types double-float)
|
449 | 458 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
450 | 459 |
(:generator 3
|
460 |
+ (emit-not-implemented)
|
|
451 | 461 |
(let ((offset (+ (* index double-float-bytes)
|
452 | 462 |
(- (* vm:vector-data-offset vm:word-bytes)
|
453 | 463 |
vm:other-pointer-type))))
|
... | ... | @@ -469,6 +479,7 @@ |
469 | 479 |
(:result-types double-float)
|
470 | 480 |
(:temporary (:scs (non-descriptor-reg)) offset)
|
471 | 481 |
(:generator 20
|
482 |
+ (emit-not-implemented)
|
|
472 | 483 |
(inst slln offset index (- 3 fixnum-tag-bits))
|
473 | 484 |
(inst add offset (- (* vm:vector-data-offset vm:word-bytes)
|
474 | 485 |
vm:other-pointer-type))
|
... | ... | @@ -490,6 +501,7 @@ |
490 | 501 |
(:result-types double-float)
|
491 | 502 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
492 | 503 |
(:generator 10
|
504 |
+ (emit-not-implemented)
|
|
493 | 505 |
(let ((offset (+ (* index double-float-bytes)
|
494 | 506 |
(- (* vm:vector-data-offset vm:word-bytes)
|
495 | 507 |
vm:other-pointer-type))))
|
... | ... | @@ -609,6 +621,7 @@ |
609 | 621 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
610 | 622 |
(:result-types complex-single-float)
|
611 | 623 |
(:generator 5
|
624 |
+ (emit-not-implemented)
|
|
612 | 625 |
(let ((real-tn (complex-single-reg-real-tn value)))
|
613 | 626 |
(inst slln offset index (- 3 fixnum-tag-bits))
|
614 | 627 |
(inst add offset (- (* vm:vector-data-offset vm:word-bytes)
|
... | ... | @@ -630,6 +643,7 @@ |
630 | 643 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
631 | 644 |
(:result-types complex-single-float)
|
632 | 645 |
(:generator 3
|
646 |
+ (emit-not-implemented)
|
|
633 | 647 |
(let ((offset (+ (* index (* 2 single-float-bytes))
|
634 | 648 |
(- (* vm:vector-data-offset vm:word-bytes)
|
635 | 649 |
vm:other-pointer-type)))
|
... | ... | @@ -657,6 +671,7 @@ |
657 | 671 |
(:result-types complex-single-float)
|
658 | 672 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
659 | 673 |
(:generator 5
|
674 |
+ (emit-not-implemented)
|
|
660 | 675 |
(let ((value-real (complex-single-reg-real-tn value))
|
661 | 676 |
(result-real (complex-single-reg-real-tn result)))
|
662 | 677 |
(inst slln offset index (- 3 fixnum-tag-bits))
|
... | ... | @@ -686,6 +701,7 @@ |
686 | 701 |
(:result-types complex-single-float)
|
687 | 702 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
688 | 703 |
(:generator 3
|
704 |
+ (emit-not-implemented)
|
|
689 | 705 |
(let ((offset (+ (* index (* 2 single-float-bytes))
|
690 | 706 |
(- (* vm:vector-data-offset vm:word-bytes)
|
691 | 707 |
vm:other-pointer-type)))
|
... | ... | @@ -717,6 +733,7 @@ |
717 | 733 |
(:result-types complex-double-float)
|
718 | 734 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
719 | 735 |
(:generator 7
|
736 |
+ (emit-not-implemented)
|
|
720 | 737 |
(let ((real-tn (complex-double-reg-real-tn value)))
|
721 | 738 |
(inst slln offset index (- 4 fixnum-tag-bits))
|
722 | 739 |
(inst add offset (- (* vm:vector-data-offset vm:word-bytes)
|
... | ... | @@ -737,6 +754,7 @@ |
737 | 754 |
(:result-types complex-double-float)
|
738 | 755 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
739 | 756 |
(:generator 5
|
757 |
+ (emit-not-implemented)
|
|
740 | 758 |
(let ((offset (+ (* index (* 2 double-float-bytes))
|
741 | 759 |
(- (* vm:vector-data-offset vm:word-bytes)
|
742 | 760 |
vm:other-pointer-type)))
|
... | ... | @@ -764,6 +782,7 @@ |
764 | 782 |
(:result-types complex-double-float)
|
765 | 783 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
766 | 784 |
(:generator 20
|
785 |
+ (emit-not-implemented)
|
|
767 | 786 |
(let ((value-real (complex-double-reg-real-tn value))
|
768 | 787 |
(result-real (complex-double-reg-real-tn result)))
|
769 | 788 |
(inst slln offset index (- 4 fixnum-tag-bits))
|
... | ... | @@ -793,6 +812,7 @@ |
793 | 812 |
(:result-types complex-double-float)
|
794 | 813 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
795 | 814 |
(:generator 15
|
815 |
+ (emit-not-implemented)
|
|
796 | 816 |
(let ((value-real (complex-double-reg-real-tn value))
|
797 | 817 |
(result-real (complex-double-reg-real-tn result))
|
798 | 818 |
(value-imag (complex-double-reg-imag-tn value))
|
... | ... | @@ -1008,6 +1028,7 @@ |
1008 | 1028 |
(:result-types double-double-float)
|
1009 | 1029 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
1010 | 1030 |
(:generator 7
|
1031 |
+ (emit-not-implemented)
|
|
1011 | 1032 |
(let ((hi-tn (double-double-reg-hi-tn value)))
|
1012 | 1033 |
(inst slln offset index (- 4 fixnum-tag-bits))
|
1013 | 1034 |
(inst add offset (- (* vm:vector-data-offset vm:word-bytes)
|
... | ... | @@ -1028,6 +1049,7 @@ |
1028 | 1049 |
(:result-types double-double-float)
|
1029 | 1050 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
1030 | 1051 |
(:generator 5
|
1052 |
+ (emit-not-implemented)
|
|
1031 | 1053 |
(let ((offset (+ (* index (* 2 double-float-bytes))
|
1032 | 1054 |
(- (* vm:vector-data-offset vm:word-bytes)
|
1033 | 1055 |
vm:other-pointer-type)))
|
... | ... | @@ -1055,6 +1077,7 @@ |
1055 | 1077 |
(:result-types double-double-float)
|
1056 | 1078 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
1057 | 1079 |
(:generator 20
|
1080 |
+ (emit-not-implemented)
|
|
1058 | 1081 |
(let ((value-hi (double-double-reg-hi-tn value))
|
1059 | 1082 |
(result-hi (double-double-reg-hi-tn result)))
|
1060 | 1083 |
(inst slln offset index (- 4 fixnum-tag-bits))
|
... | ... | @@ -1084,6 +1107,7 @@ |
1084 | 1107 |
(:result-types double-double-float)
|
1085 | 1108 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
1086 | 1109 |
(:generator 15
|
1110 |
+ (emit-not-implemented)
|
|
1087 | 1111 |
(let ((value-hi (double-double-reg-hi-tn value))
|
1088 | 1112 |
(result-hi (double-double-reg-hi-tn result))
|
1089 | 1113 |
(value-lo (double-double-reg-lo-tn value))
|
... | ... | @@ -1119,6 +1143,7 @@ |
1119 | 1143 |
(:result-types complex-double-double-float)
|
1120 | 1144 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
1121 | 1145 |
(:generator 7
|
1146 |
+ (emit-not-implemented)
|
|
1122 | 1147 |
(let ((real-tn (complex-double-double-reg-real-hi-tn value)))
|
1123 | 1148 |
(inst slln offset index (- 5 fixnum-tag-bits))
|
1124 | 1149 |
(inst add offset (- (* vm:vector-data-offset vm:word-bytes)
|
... | ... | @@ -1145,6 +1170,7 @@ |
1145 | 1170 |
(:result-types complex-double-double-float)
|
1146 | 1171 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
1147 | 1172 |
(:generator 5
|
1173 |
+ (emit-not-implemented)
|
|
1148 | 1174 |
(let ((offset (+ (* index (* 2 double-float-bytes))
|
1149 | 1175 |
(- (* vm:vector-data-offset vm:word-bytes)
|
1150 | 1176 |
vm:other-pointer-type)))
|
... | ... | @@ -1180,6 +1206,7 @@ |
1180 | 1206 |
(:result-types complex-double-double-float)
|
1181 | 1207 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) offset)
|
1182 | 1208 |
(:generator 20
|
1209 |
+ (emit-not-implemented)
|
|
1183 | 1210 |
(let ((value-real (complex-double-double-reg-real-hi-tn value))
|
1184 | 1211 |
(result-real (complex-double-double-reg-real-hi-tn result)))
|
1185 | 1212 |
(inst slln offset index (- 5 fixnum-tag-bits))
|
... | ... | @@ -1221,6 +1248,7 @@ |
1221 | 1248 |
(:result-types complex-double-double-float)
|
1222 | 1249 |
(:temporary (:scs (non-descriptor-reg) :from (:argument 1)) temp)
|
1223 | 1250 |
(:generator 15
|
1251 |
+ (emit-not-implemented)
|
|
1224 | 1252 |
(let ((value-real (complex-double-double-reg-real-hi-tn value))
|
1225 | 1253 |
(result-real (complex-double-double-reg-real-hi-tn result))
|
1226 | 1254 |
(value-imag (complex-double-double-reg-imag-hi-tn value))
|
... | ... | @@ -241,6 +241,7 @@ |
241 | 241 |
(:results (res :scs (sap-reg)))
|
242 | 242 |
(:result-types system-area-pointer)
|
243 | 243 |
(:generator 2
|
244 |
+ (emit-not-implemented)
|
|
244 | 245 |
(inst li res (make-fixup (extern-alien-name foreign-symbol)
|
245 | 246 |
:foreign))))
|
246 | 247 |
|
... | ... | @@ -254,6 +255,7 @@ |
254 | 255 |
(:result-types system-area-pointer)
|
255 | 256 |
(:temporary (:scs (non-descriptor-reg)) addr)
|
256 | 257 |
(:generator 2
|
258 |
+ (emit-not-implemented)
|
|
257 | 259 |
(inst li addr (make-fixup (extern-alien-name foreign-symbol)
|
258 | 260 |
:foreign-data))
|
259 | 261 |
(loadw res addr)))
|
... | ... | @@ -271,6 +273,7 @@ |
271 | 273 |
(:temporary (:sc control-stack :offset nfp-save-offset) nfp-save)
|
272 | 274 |
(:vop-var vop)
|
273 | 275 |
(:generator 0
|
276 |
+ (emit-not-implemented)
|
|
274 | 277 |
(let ((cur-nfp (current-nfp-tn vop)))
|
275 | 278 |
(when cur-nfp
|
276 | 279 |
(store-stack-tn nfp-save cur-nfp))
|
... | ... | @@ -287,6 +290,7 @@ |
287 | 290 |
(:results (result :scs (sap-reg any-reg)))
|
288 | 291 |
(:temporary (:scs (unsigned-reg) :to (:result 0)) temp)
|
289 | 292 |
(:generator 0
|
293 |
+ (emit-not-implemented)
|
|
290 | 294 |
(unless (zerop amount)
|
291 | 295 |
(let ((delta (logandc2 (+ amount 7) 7)))
|
292 | 296 |
(cond ((< delta (ash 1 12))
|
... | ... | @@ -305,6 +309,7 @@ |
305 | 309 |
(:policy :fast-safe)
|
306 | 310 |
(:temporary (:scs (unsigned-reg) :to (:result 0)) temp)
|
307 | 311 |
(:generator 0
|
312 |
+ (emit-not-implemented)
|
|
308 | 313 |
(unless (zerop amount)
|
309 | 314 |
(let ((delta (logandc2 (+ amount 7) 7)))
|
310 | 315 |
(cond ((< delta (ash 1 12))
|
... | ... | @@ -244,6 +244,7 @@ |
244 | 244 |
(inst b :gt zero-out-loop)
|
245 | 245 |
(inst stn zero-tn csp-tn temp)
|
246 | 246 |
))
|
247 |
+ (emit-not-implemented)
|
|
247 | 248 |
(let ((size (* vm:word-bytes (sb-allocated-size 'control-stack))))
|
248 | 249 |
(cond ((typep size '(signed-byte 13))
|
249 | 250 |
(inst add csp-tn csp-tn size))
|
... | ... | @@ -349,7 +350,7 @@ default-value-8 |
349 | 350 |
(inst nop))
|
350 | 351 |
(inst compute-code-from-lra code-tn code-tn lra-label temp))
|
351 | 352 |
(let ((regs-defaulted (gen-label))
|
352 |
- (defaulting-done (gen-label))
|
|
353 |
+ (defaulting-done (gen-label))
|
|
353 | 354 |
(default-stack-vals (gen-label)))
|
354 | 355 |
;; Branch off to the MV case.
|
355 | 356 |
(new-assem:without-scheduling ()
|
... | ... | @@ -514,6 +515,7 @@ default-value-8 |
514 | 515 |
(:ignore arg-locs args ocfp)
|
515 | 516 |
(:generator 5
|
516 | 517 |
(trace-table-entry trace-table-call-site)
|
518 |
+ (emit-not-implemented)
|
|
517 | 519 |
(let ((label (gen-label))
|
518 | 520 |
(cur-nfp (current-nfp-tn vop)))
|
519 | 521 |
(when cur-nfp
|
... | ... | @@ -554,6 +556,7 @@ default-value-8 |
554 | 556 |
(:temporary (:sc control-stack :offset nfp-save-offset) nfp-save)
|
555 | 557 |
(:generator 20
|
556 | 558 |
(trace-table-entry trace-table-call-site)
|
559 |
+ (emit-not-implemented)
|
|
557 | 560 |
(let ((label (gen-label))
|
558 | 561 |
(cur-nfp (current-nfp-tn vop)))
|
559 | 562 |
(when cur-nfp
|
... | ... | @@ -598,6 +601,7 @@ default-value-8 |
598 | 601 |
(:temporary (:scs (non-descriptor-reg)) temp)
|
599 | 602 |
(:generator 5
|
600 | 603 |
(trace-table-entry trace-table-call-site)
|
604 |
+ (emit-not-implemented)
|
|
601 | 605 |
(let ((label (gen-label))
|
602 | 606 |
(cur-nfp (current-nfp-tn vop)))
|
603 | 607 |
(when cur-nfp
|
... | ... | @@ -637,6 +641,7 @@ default-value-8 |
637 | 641 |
(:vop-var vop)
|
638 | 642 |
(:generator 6
|
639 | 643 |
(trace-table-entry trace-table-function-epilogue)
|
644 |
+ (emit-not-implemented)
|
|
640 | 645 |
(maybe-load-stack-tn old-fp-temp old-fp)
|
641 | 646 |
(maybe-load-stack-tn return-pc-temp return-pc)
|
642 | 647 |
(move csp-tn cfp-tn)
|
... | ... | @@ -928,7 +933,7 @@ default-value-8 |
928 | 933 |
(:vop-var vop)
|
929 | 934 |
|
930 | 935 |
(:generator 75
|
931 |
- |
|
936 |
+ (emit-not-implemented)
|
|
932 | 937 |
;; Move these into the passing locations if they are not already there.
|
933 | 938 |
(move args args-arg)
|
934 | 939 |
(move lexenv function-arg)
|
... | ... | @@ -961,6 +966,7 @@ default-value-8 |
961 | 966 |
(:generator 6
|
962 | 967 |
(trace-table-entry trace-table-function-epilogue)
|
963 | 968 |
;; Clear the number stack.
|
969 |
+ (emit-not-implemented)
|
|
964 | 970 |
(let ((cur-nfp (current-nfp-tn vop)))
|
965 | 971 |
(when cur-nfp
|
966 | 972 |
(inst add nsp-tn cur-nfp
|
... | ... | @@ -1005,6 +1011,7 @@ default-value-8 |
1005 | 1011 |
(:generator 6
|
1006 | 1012 |
(trace-table-entry trace-table-function-epilogue)
|
1007 | 1013 |
;; Clear the number stack.
|
1014 |
+ (emit-not-implemented)
|
|
1008 | 1015 |
(let ((cur-nfp (current-nfp-tn vop)))
|
1009 | 1016 |
(when cur-nfp
|
1010 | 1017 |
(inst add nsp-tn cur-nfp
|
... | ... | @@ -1056,6 +1063,7 @@ default-value-8 |
1056 | 1063 |
|
1057 | 1064 |
(:generator 13
|
1058 | 1065 |
(trace-table-entry trace-table-function-epilogue)
|
1066 |
+ (emit-not-implemented)
|
|
1059 | 1067 |
(let ((not-single (gen-label)))
|
1060 | 1068 |
;; Clear the number stack.
|
1061 | 1069 |
(let ((cur-nfp (current-nfp-tn vop)))
|
... | ... | @@ -1109,6 +1117,7 @@ default-value-8 |
1109 | 1117 |
(:ignore label)
|
1110 | 1118 |
(:generator 6
|
1111 | 1119 |
;; Get result.
|
1120 |
+ (emit-not-implemented)
|
|
1112 | 1121 |
(move closure lexenv)))
|
1113 | 1122 |
|
1114 | 1123 |
;;; Copy a more arg from the argument area to the end of the current frame.
|
... | ... | @@ -1122,6 +1131,7 @@ default-value-8 |
1122 | 1131 |
(:temporary (:sc descriptor-reg :offset cname-offset) temp)
|
1123 | 1132 |
(:info fixed)
|
1124 | 1133 |
(:generator 20
|
1134 |
+ (emit-not-implemented)
|
|
1125 | 1135 |
(let ((loop (gen-label))
|
1126 | 1136 |
(do-regs (gen-label))
|
1127 | 1137 |
(done (gen-label)))
|
... | ... | @@ -1196,6 +1206,7 @@ default-value-8 |
1196 | 1206 |
(:translate %listify-rest-args)
|
1197 | 1207 |
(:policy :safe)
|
1198 | 1208 |
(:generator 20
|
1209 |
+ (emit-not-implemented)
|
|
1199 | 1210 |
(move context context-arg)
|
1200 | 1211 |
(move count count-arg)
|
1201 | 1212 |
;; Check to see if there are any arguments.
|
... | ... | @@ -1259,6 +1270,7 @@ default-value-8 |
1259 | 1270 |
(:result-types t tagged-num)
|
1260 | 1271 |
(:note _N"more-arg-context")
|
1261 | 1272 |
(:generator 5
|
1273 |
+ (emit-not-implemented)
|
|
1262 | 1274 |
(inst sub count supplied (fixnumize fixed))
|
1263 | 1275 |
(inst sub context csp-tn count)))
|
1264 | 1276 |
|
... | ... | @@ -1295,6 +1307,7 @@ default-value-8 |
1295 | 1307 |
(:vop-var vop)
|
1296 | 1308 |
(:save-p :compute-only)
|
1297 | 1309 |
(:generator 1000
|
1310 |
+ (emit-not-implemented)
|
|
1298 | 1311 |
(error-call vop ,error ,@args)))))
|
1299 | 1312 |
(frob argument-count-error invalid-argument-count-error
|
1300 | 1313 |
c::%argument-count-error nargs)
|
... | ... | @@ -101,7 +101,9 @@ |
101 | 101 |
(inst ,op value object temp)))))
|
102 | 102 |
(t
|
103 | 103 |
,@(unless (zerop shift)
|
104 |
- `((inst srln temp index ,shift)))
|
|
104 |
+ (if (minusp shift)
|
|
105 |
+ `((inst slln temp index ,(- shift)))
|
|
106 |
+ `((inst srln temp index ,shift))))
|
|
105 | 107 |
(inst add temp ,(if (zerop shift) 'index 'temp)
|
106 | 108 |
(- (ash offset vm:word-shift) lowtag))
|
107 | 109 |
(inst ,op value object temp)))
|
... | ... | @@ -112,8 +114,8 @@ |
112 | 114 |
(define-indexer signed-word-index-ref nil ldsw 0)
|
113 | 115 |
#+sparc-v9
|
114 | 116 |
(define-indexer signed-word-index-set nil st 0)
|
115 |
-(define-indexer word-index-ref nil ld 0)
|
|
116 |
-(define-indexer word-index-set t st 0)
|
|
117 |
+(define-indexer word-index-ref nil ldn -1)
|
|
118 |
+(define-indexer word-index-set t stn -1)
|
|
117 | 119 |
(define-indexer halfword-index-ref nil lduh 1)
|
118 | 120 |
(define-indexer signed-halfword-index-ref nil ldsh 1)
|
119 | 121 |
(define-indexer halfword-index-set t sth 1)
|