Changeset 9768


Ignore:
Timestamp:
Jun 16, 2008, 8:36:35 PM (11 years ago)
Author:
rme
Message:

Add .SPaset1 (replacing .SPunused_5), and use it in x862-%aset1.

.SPbuiltin_aset1 just jumps straight to %aset1 now.

Location:
branches/ia32
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/compiler/X86/X8632/x8632-arch.lisp

    r9646 r9768  
    980980         (defx8632subprim .SPaset3)
    981981         (defx8632subprim .SPffcall-return-registers)
    982          (defx8632subprim .SPunused-5)
     982         (defx8632subprim .SPaset1)
    983983         (defx8632subprim .SPunused-6)
    984984         (defx8632subprim .SPunbind-interrupt-level)
  • branches/ia32/compiler/X86/x862.lisp

    r9683 r9768  
    73717371    (if keyword
    73727372      (x862-vset seg vreg xfer keyword v i n (not *x862-reckless*))
    7373       (x862-ternary-builtin seg vreg xfer '%aset1 v i n))))
     7373      (target-arch-case
     7374       (:x8632
     7375        (with-x86-local-vinsn-macros (seg vreg xfer)
     7376          (let* ((subprim (subprim-name->offset '.SPaset1))
     7377                 (tail-p (x862-tailcallok xfer)))
     7378            (x862-three-targeted-reg-forms seg
     7379                                           v ($ x8632::temp0)
     7380                                           i ($ x8632::arg_y)
     7381                                           n ($ x8632::arg_z))
     7382            (if tail-p
     7383              (progn
     7384                (x862-restore-full-lisp-context seg)
     7385                (! jump-subprim subprim))
     7386              (progn
     7387                (! call-subprim subprim)
     7388                (when vreg
     7389                  (<- ($ x8632::arg_z)))
     7390                (^))))))
     7391       (:x8664
     7392        (x862-ternary-builtin seg vreg xfer '%aset1 v i n))))))
    73747393
    73757394(defx862 x862-%i+ %i+ (seg vreg xfer form1 form2 &optional overflow)
  • branches/ia32/lisp-kernel/x86-spentry32.s

    r9739 r9768  
    38993899_endsubp(builtin_logxor)
    39003900
    3901 _spentry(builtin_aset1)
     3901/* temp0 = vector, arg_y = index, arg_z = newval */
     3902_spentry(aset1)
    39023903        __(extract_typecode(%temp0,%imm0))
    39033904        __(box_fixnum(%imm0,%temp1))
    39043905        __(cmpb $min_vector_subtag,%imm0_b)
    39053906        __(ja _SPsubtag_misc_set)
     3907        /* push frame... */
    39063908        __(pop %temp1)
    39073909        __(push $reserved_frame_marker)
     
    39093911        __(push %temp0)
    39103912        __(push %temp1)
     3913        /* and fall through... */
     3914_endsubp(aset1)
     3915
     3916_spentry(builtin_aset1)
    39113917        __(jump_builtin(_builtin_aset1,3))
    39123918_endsubp(builtin_aset1)
     
    44304436_endsubp(breakpoint)
    44314437
    4432 _spentry(unused_5)
    4433         __(int $3)
    4434 _endsubp(unused_5)
    4435 
    44364438_spentry(unused_6)
    44374439        __(int $3)
  • branches/ia32/lisp-kernel/x86-spjump32.s

    r8834 r9768  
    172172        _spjump(aset3)
    173173        _spjump(ffcall_return_registers)
    174         _spjump(unused_5)
     174        _spjump(aset1)
    175175        _spjump(unused_6)
    176176        _spjump(unbind_interrupt_level)
Note: See TracChangeset for help on using the changeset viewer.