Changeset 9779


Ignore:
Timestamp:
Jun 17, 2008, 10:35:59 PM (11 years ago)
Author:
rme
Message:

In egc_rplaca, egc_rplacd, egc_gvset, set_hash_key, and
store_node_conditional:

We already use a memory operand with the BTS instruction when setting
refbits, so just do the CISC-y thing and let the hardware figure out
the word offset (or whatever it does) instead of redundantly doing it
ourselves.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-spentry64.s

    r9778 r9779  
    17721772        __(jae 0b)
    17731773        __(ref_global(refbits,%temp0))
    1774         __(movq %imm0,%imm1)
    1775         __(andl $63,%imm0_l)
    1776         __(shrq $bitmap_shift,%imm1)
    17771774        __(xorb $63,%imm0_b)
    17781775        __(lock)
    1779         __(btsq %imm0,(%temp0,%imm1,8))
     1776        __(btsq %imm0,(%temp0))
    17801777        __(ret)
    17811778_endsubp(rplaca)
     
    17941791        __(jae 0b)
    17951792        __(ref_global(refbits,%temp0))
    1796         __(movq %imm0,%imm1)
    1797         __(andl $63,%imm0_l)
    1798         __(shrq $bitmap_shift,%imm1)
    17991793        __(xorb $63,%imm0_b)
    18001794        __(lock)
    1801         __(btsq %imm0,(%temp0,%imm1,8))
     1795        __(btsq %imm0,(%temp0))
    18021796        __(ret)
    18031797_endsubp(rplacd)
     
    18191813        __(jae 0b)
    18201814        __(ref_global(refbits,%temp0))
    1821         __(movq %imm0,%imm1)
    1822         __(andl $63,%imm0_l)
    1823         __(shrq $bitmap_shift,%imm1)
    18241815        __(xorb $63,%imm0_b)
    18251816        __(lock)
    1826         __(btsq %imm0,(%temp0,%imm1,8))
     1817        __(btsq %imm0,(%temp0))
    18271818        __(ret)               
    18281819_endsubp(gvset)
     
    18461837        __(jae 0b)
    18471838        __(ref_global(refbits,%temp0))
    1848         __(movq %imm0,%imm1)
    1849         __(andl $63,%imm0_l)
    1850         __(shrq $bitmap_shift,%imm1)
    18511839        __(xorb $63,%imm0_b)
    18521840        __(lock)
    1853         __( btsq %imm0,(%temp0,%imm1,8))
     1841        __(btsq %imm0,(%temp0))
    18541842        /* Now memoize the address of the hash vector   */
    18551843        __(movq %arg_x,%imm0)
    18561844        __(subq lisp_global(heap_start),%imm0)
    18571845        __(shrq $dnode_shift,%imm0)
    1858         __(movq %imm0,%imm1)
    1859         __(andl $63,%imm0_l)
    1860         __(shrq $bitmap_shift,%imm1)
    18611846        __(xorb $63,%imm0_b)
    18621847        __(lock)
    1863         __(btsq %imm0,(%temp0,%imm1,8))
     1848        __(btsq %imm0,(%temp0))
    18641849        __(ret)               
    18651850_endsubp(set_hash_key)
     
    18901875        __(ref_global(refbits,%temp1))
    18911876        __(jae 2f)
    1892         __(movq %imm0,%imm1)
    1893         __(andl $63,%imm0_l)
    1894         __(shrq $bitmap_shift,%imm1)
    18951877        __(xorb $63,%imm0_b)
    18961878        __(lock)
    1897         __(btsq %imm0,(%temp1,%imm1,8))
     1879        __(btsq %imm0,(%temp1))
    18981880        .globl C(egc_write_barrier_end)
    18991881C(egc_write_barrier_end):
Note: See TracChangeset for help on using the changeset viewer.