Changeset 8209 for branches/ia32/lisp-kernel/x86-spentry32.s
- Timestamp:
- Jan 17, 2008, 9:55:05 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/lisp-kernel/x86-spentry32.s
r8068 r8209 290 290 _endsubp(rplacd) 291 291 292 /* args (src, unscaled-idx, val) in temp0, arg_y, arg_z */ 292 293 _spentry(gvset) 293 294 .globl C(egc_gvset) … … 636 637 __(int $3) 637 638 _endsubp(specref) 638 639 640 /* arg_y = special symbol, arg_z = new value. */ 639 641 _spentry(specset) 640 __(int $3) 642 __(movl symbol.binding_index(%arg_y),%imm0) 643 __(cmp %rcontext:tcr.tlb_limit,%imm0) 644 __(movl %rcontext:tcr.tlb_pointer,%temp1) 645 __(jae 1f) 646 __(movl (%temp1,%imm0),%temp0) 647 __(cmpb $no_thread_local_binding_marker,%temp0_b) 648 __(je 1f) 649 __(movl %arg_z,(%temp1,%imm0)) 650 __(ret) 651 1: __(movl %arg_y,%temp0) 652 __(movl $1<<fixnumshift,%arg_y) 653 __(jmp _SPgvset) 641 654 _endsubp(specset) 642 655 643 656 _spentry(specrefcheck) 644 __(int $3) 657 __(movl symbol.binding_index(%arg_z),%imm0) 658 __(cmp %rcontext:tcr.tlb_limit,%imm0) 659 __(movl %rcontext:tcr.tlb_pointer,%temp1) 660 __(mov %arg_z,%arg_y) 661 __(jae 7f) 662 __(movl (%temp1,%imm0),%arg_z) 663 __(cmpb $no_thread_local_binding_marker,%arg_z_b) 664 __(jne 8f) 665 7: __(movl symbol.vcell(%arg_y),%arg_z) 666 8: __(cmpb $unbound_marker,%arg_z_b) 667 __(jne,pt 9f) 668 __(uuo_error_reg_unbound(Rarg_y)) 669 9: __(repret) 645 670 _endsubp(specrefcheck) 646 671
Note: See TracChangeset
for help on using the changeset viewer.