Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl

Commits:

6 changed files:

Changes:

  • src/compiler/sparc64/alloc.lisp
    ... ... @@ -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))
    

  • src/compiler/sparc64/arith.lisp
    ... ... @@ -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
    

  • src/compiler/sparc64/array.lisp
    ... ... @@ -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))
    

  • src/compiler/sparc64/c-call.lisp
    ... ... @@ -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))
    

  • src/compiler/sparc64/call.lisp
    ... ... @@ -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)
    

  • src/compiler/sparc64/memory.lisp
    ... ... @@ -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)