Changeset 5509
- Timestamp:
- Nov 7, 2006, 9:28:27 AM (18 years ago)
- Location:
- trunk/ccl/lisp-kernel
- Files:
-
- 2 edited
-
x86-spentry64.s (modified) (3 diffs)
-
x86-spjump64.s (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/x86-spentry64.s
r5488 r5509 4360 4360 _endsubp(aref2) 4361 4361 4362 /* %temp0 = array, %arg_x = i,%arg_y = j, %arg_z = k */ 4363 _spentry(aref3) 4364 __(testb $fixnummask,%arg_x_b) 4365 __(je,pt 0f) 4366 __(uuo_error_reg_not_fixnum(Rarg_x)) 4367 0: __(testb $fixnummask,%arg_y_b) 4368 __(je,pt 1f) 4369 __(uuo_error_reg_not_fixnum(Rarg_y)) 4370 1: __(testb $fixnummask,%arg_z_b) 4371 __(je,pt 2f) 4372 __(uuo_error_reg_not_fixnum(Rarg_z)) 4373 2: __(extract_typecode(%temp0,%imm0)) 4374 __(cmpb $subtag_arrayH,%imm0_b) 4375 __(jne 3f) 4376 __(cmpq $3<<fixnumshift,arrayH.rank(%temp0)) 4377 __(je,pt 4f) 4378 3: __(uuo_error_reg_not_type(Rtemp0,error_object_not_array_3d)) 4379 4: __(cmpq arrayH.dim0(%temp0),%arg_x) 4380 __(jb,pt 5f) 4381 __(uuo_error_array_bounds(Rarg_x,Rtemp0)) 4382 5: __(movq arrayH.dim0+node_size(%temp0),%imm0) 4383 __(cmpq %imm0,%arg_y) 4384 __(jb,pt 6f) 4385 __(uuo_error_array_bounds(Rarg_y,Rtemp0)) 4386 6: __(unbox_fixnum(%imm0,%imm0)) 4387 __(movq arrayH.dim0+(node_size*2)(%temp0),%imm1) 4388 __(cmpq %imm1,%arg_z) 4389 __(jb,pt 7f) 4390 __(uuo_error_array_bounds(Rarg_z,Rtemp0)) 4391 7: __(unbox_fixnum(%imm1,%imm1)) 4392 __(imulq %imm1,%arg_y) 4393 __(mulq %imm1) 4394 __(imulq %imm0,%arg_x) 4395 __(addq %arg_x,%arg_z) 4396 __(addq %arg_y,%arg_z) 4397 __(movq %temp0,%arg_y) 4398 8: __(addq arrayH.displacement(%arg_y),%arg_z) 4399 __(movq arrayH.data_vector(%arg_y),%arg_y) 4400 __(extract_subtag(%arg_y,%imm1_b)) 4401 __(cmpb $subtag_vectorH,%imm1_b) 4402 __(ja C(misc_ref_common)) 4403 __(jmp 8b) 4404 _endsubp(aref3) 4405 4362 4406 /* As with aref2, but temp0 = array, arg_x = i, arg_y = j, arg_z = new_value */ 4363 4407 _spentry(aset2) … … 4392 4436 __(jmp 6b) 4393 4437 _endsubp(aset2) 4438 4439 /% temp1 = array, %temp0 = i, %arg_x = j, %arg_y = k, %arg_y = newval. */ 4440 4441 _spentry(aset3) 4442 __(testb $fixnummask,%temp0_b) 4443 __(je,pt 0f) 4444 __(uuo_error_reg_not_fixnum(Rtemp0)) 4445 0: __(testb $fixnummask,%arg_x_b) 4446 __(je,pt 1f) 4447 __(uuo_error_reg_not_fixnum(Rarg_x)) 4448 1: __(testb $fixnummask,%arg_y_b) 4449 __(je,pt 2f) 4450 __(uuo_error_reg_not_fixnum(Rarg_y)) 4451 2: __(extract_typecode(%temp1,%imm0)) 4452 __(cmpb $subtag_arrayH,%imm0_b) 4453 __(jne 3f) 4454 __(cmpq $3<<fixnumshift,arrayH.rank(%temp1)) 4455 __(je,pt 4f) 4456 3: __(uuo_error_reg_not_type(Rtemp1,error_object_not_array_3d)) 4457 4: __(cmpq arrayH.dim0(%temp1),%temp0) 4458 __(jb,pt 5f) 4459 __(uuo_error_array_bounds(Rtemp0,Rtemp1)) 4460 5: __(movq arrayH.dim0+node_size(%temp1),%imm0) 4461 __(cmpq %imm0,%arg_x) 4462 __(jb,pt 6f) 4463 __(uuo_error_array_bounds(Rarg_x,Rtemp1)) 4464 6: __(unbox_fixnum(%imm0,%imm0)) 4465 __(movq arrayH.dim0+(node_size*2)(%temp1),%imm1) 4466 __(cmpq %imm1,%arg_y) 4467 __(jb,pt 7f) 4468 __(uuo_error_array_bounds(Rarg_y,Rtemp1)) 4469 7: __(unbox_fixnum(%imm1,%imm1)) 4470 __(imulq %imm1,%arg_x) 4471 __(mulq %imm1) 4472 __(imulq %imm0,%temp0) 4473 __(addq %temp0,%arg_y) 4474 __(addq %arg_x,%arg_y) 4475 __(movq %temp1,%arg_x) 4476 8: __(addq arrayH.displacement(%arg_x),%arg_y) 4477 __(movq arrayH.data_vector(%arg_x),%arg_x) 4478 __(extract_subtag(%arg_x,%imm1_b)) 4479 __(cmpb $subtag_vectorH,%imm1_b) 4480 __(ja C(misc_set_common)) 4481 __(jmp 8b) 4482 _endsubp(aset3) 4483 4394 4484 4395 4485 _spentry(poweropen_callbackX) … … 4463 4553 4464 4554 4465 _spentry(unused_2) 4466 _endsubp(unused_2) 4467 4468 _spentry(unused_3) 4469 _endsubp(unused_3) 4555 4470 4556 4471 4557 _spentry(unused_4) -
trunk/ccl/lisp-kernel/x86-spjump64.s
r5457 r5509 166 166 _spjump(fix_overflow) 167 167 _spjump(mvpasssym) 168 _spjump( unused_2)169 _spjump( unused_3)168 _spjump(aref3) 169 _spjump(aset3) 170 170 _spjump(unused_4) 171 171 _spjump(unused_5)
Note:
See TracChangeset
for help on using the changeset viewer.
