Changeset 529
- Timestamp:
- Feb 11, 2004, 7:17:20 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lisp-kernel/spentry.s (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/spentry.s
r522 r529 467 467 __(b misc_ref_common) 468 468 469 469 470 470 /* Is it worth trying to avoid (postpone) consing here ? */ 471 471 _spentry(newblocktag) … … 943 943 __(li arg_z,t_value) 944 944 __(bne cr0,9f) 945 __(str(arg_y, 4(imm0)))945 __(str(arg_y,node_size(imm0))) 946 946 __(str(arg_z,0(imm0))) 947 947 __(b 9f) … … 1338 1338 _spentry(getxlong) 1339 1339 __(extract_lisptag(imm0,arg_z)) 1340 __(cmpri( imm0,tag_fixnum))1340 __(cmpri(cr0,imm0,tag_fixnum)) 1341 1341 __(cmpri(cr1,imm0,tag_misc)) 1342 1342 __(unbox_fixnum(imm0,arg_z)) 1343 __(beqlr )1343 __(beqlr cr0) 1344 1344 __(mr temp0,arg_z) 1345 1345 __(bne- cr1,local_label(error)) … … 1355 1355 __(beq cr1,local_label(big1)) 1356 1356 __(beq cr0,local_label(big1)) 1357 __(bne cr7,local_label(e xtended))1357 __(bne cr7,local_label(error)) 1358 1358 1359 1359 local_label(big2): … … 1365 1365 __(blr) 1366 1366 1367 local_label(extended):1368 /* Handle extended strings. Maybe later handle displaced strings */1369 __(cmpri(cr0,imm0,(4<<num_subtag_bits)|subtag_simple_general_string))1370 __(bne cr0,local_label(error))1371 1372 __(vref16(imm0,temp0,3))1373 __(cmpri(cr0,imm0,256))1374 __(vref16(imm1,temp0,2))1375 __(cmpri(cr1,imm1,256))1376 __(rlwimi imm0,imm1,8,16,23)1377 __(vref16(imm1,temp0,1))1378 __(bge cr0,local_label(error))1379 __(cmpri(cr0,imm1,256))1380 __(rlwimi imm0,imm1,16,8,15)1381 __(vref16(imm1,temp0,0))1382 __(bge cr1,local_label(error))1383 __(cmpri(cr1,imm1,256))1384 __(rlwimi imm0,imm1,24,0,7)1385 __(bge cr0,local_label(error))1386 __(bge cr1,local_label(error))1387 __(blr)1388 1367 1389 1368 local_label(error): … … 2866 2845 __(beq 9f) /* Null list is proper */ 2867 2846 0: 2868 __(trap_unless_lis ptag_equal(temp0,tag_list,imm0))2847 __(trap_unless_list(temp0,imm0)) 2869 2848 __(_cdr(temp2,temp0)) /* (null (cdr fast)) ? */ 2870 2849 __(cmpri(temp2,nil_value)) 2871 __(trap_unless_lis ptag_equal(temp2,tag_list,imm0))2850 __(trap_unless_list(temp2,imm0)) 2872 2851 __(_cdr(temp0,temp2)) 2873 2852 __(beq 9f) … … 3172 3151 __(cmpri(cr1,imm1,tag_fixnum)) 3173 3152 __(bne- cr0,1f) 3174 __(bne- cr 0,1f)3153 __(bne- cr1,1f) 3175 3154 __(subo. arg_z,arg_y,arg_z) 3176 3155 __(bnslr+) … … 3227 3206 __(extract_lisptag(imm1,arg_z)) 3228 3207 __(cmpri(cr0,imm0,tag_fixnum)) 3229 __(cmpri(cr1,imm 0,tag_fixnum))3208 __(cmpri(cr1,imm1,tag_fixnum)) 3230 3209 __(cmpr(cr2,arg_y,arg_z)) 3231 3210 __(bne- cr0,1f) … … 3242 3221 __(extract_lisptag(imm1,arg_z)) 3243 3222 __(cmpri(cr0,imm0,tag_fixnum)) 3244 __(cmpri(cr1,imm 0,tag_fixnum))3223 __(cmpri(cr1,imm1,tag_fixnum)) 3245 3224 __(cmpr(cr2,arg_y,arg_z)) 3246 3225 __(bne- cr0,1f) … … 3257 3236 __(extract_lisptag(imm1,arg_z)) 3258 3237 __(cmpri(cr0,imm0,tag_fixnum)) 3259 __(cmpri(cr1,imm 0,tag_fixnum))3238 __(cmpri(cr1,imm1,tag_fixnum)) 3260 3239 __(cmpr(cr2,arg_y,arg_z)) 3261 3240 __(bne- cr0,1f) … … 3272 3251 __(extract_lisptag(imm1,arg_z)) 3273 3252 __(cmpri(cr0,imm0,tag_fixnum)) 3274 __(cmpri(cr1,imm 0,tag_fixnum))3253 __(cmpri(cr1,imm1,tag_fixnum)) 3275 3254 __(cmpr(cr2,arg_y,arg_z)) 3276 3255 __(bne- cr0,1f) … … 3287 3266 __(extract_lisptag(imm1,arg_z)) 3288 3267 __(cmpri(cr0,imm0,tag_fixnum)) 3289 __(cmpri(cr1,imm 0,tag_fixnum))3268 __(cmpri(cr1,imm1,tag_fixnum)) 3290 3269 __(cmpr(cr2,arg_y,arg_z)) 3291 3270 __(bne- cr0,1f) 3292 __(bne- cr 0,1f)3271 __(bne- cr1,1f) 3293 3272 __(li arg_z,nil_value) 3294 3273 __(bgtlr cr2) … … 3367 3346 __(cmpri(arg_z,nil_value)) 3368 3347 __(beqlr) 3369 1: __(trap_unless_lis ptag_equal(arg_z,tag_list,imm0))3348 1: __(trap_unless_list(arg_z,imm0)) 3370 3349 __(_car(arg_x,arg_z)) 3371 3350 __(_cdr(arg_z,arg_z)) … … 3373 3352 __(cmpri(cr1,arg_z,nil_value)) 3374 3353 __(beq cr2,2f) 3375 __(trap_unless_lis ptag_equal(arg_x,tag_list,imm0))3354 __(trap_unless_list(arg_x,imm0)) 3376 3355 __(_car(temp0,arg_x)) 3377 3356 __(cmpr(temp0,arg_y)) … … 3387 3366 __(cmpri(cr1,arg_z,nil_value)) 3388 3367 __(b 2f) 3389 1: __(trap_unless_lis ptag_equal(arg_z,tag_list,imm0))3368 1: __(trap_unless_list(arg_z,imm0)) 3390 3369 __(_car(arg_x,arg_z)) 3391 3370 __(_cdr(temp0,arg_z)) … … 3433 3412 __(extract_lisptag(imm1,arg_z)) 3434 3413 __(cmpri(cr0,imm0,tag_fixnum)) 3435 __(cmpri(cr1,imm 0,tag_fixnum))3414 __(cmpri(cr1,imm1,tag_fixnum)) 3436 3415 __(bne- cr0,1f) 3437 3416 __(bne- cr1,1f) … … 3448 3427 __(cmpri(cr3,imm1,tag_fixnum)) 3449 3428 __(cmpri(cr2,arg_z,-(29<<2))) /* !! 2 = fixnumshift */ 3450 __(bne- 9f)3429 __(bne- cr0,9f) 3451 3430 __(bne- cr3,9f) 3452 3431 __(bne cr1,0f) … … 3521 3500 __(extract_lisptag(imm1,arg_z)) 3522 3501 __(cmpri(cr0,imm0,tag_fixnum)) 3523 __(cmpri(cr 0,imm1,tag_fixnum))3502 __(cmpri(cr1,imm1,tag_fixnum)) 3524 3503 __(bne- cr0,1f) 3525 3504 __(bne- cr1,1f) … … 4324 4303 __(beq 9f) /* Null list is proper */ 4325 4304 0: 4326 __(trap_unless_lis ptag_equal(temp4,tag_list,imm0))4305 __(trap_unless_list(temp4,imm0)) 4327 4306 __(_cdr(temp2,temp4)) /* (null (cdr fast)) ? */ 4328 4307 __(cmpri(temp2,nil_value)) 4329 __(trap_unless_lis ptag_equal(temp2,tag_list,imm0))4308 __(trap_unless_list(temp2,imm0)) 4330 4309 __(_cdr(temp4,temp2)) 4331 4310 __(beq 9f)
Note:
See TracChangeset
for help on using the changeset viewer.
