Changeset 6374 for branches/x8664-call


Ignore:
Timestamp:
Apr 30, 2007, 5:57:37 AM (13 years ago)
Author:
gb
Message:

Define and use repret instruction.

Location:
branches/x8664-call/ccl/lisp-kernel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/x8664-call/ccl/lisp-kernel/x86-asmutils64.s

    r5989 r6374  
    2929        __(subq $1,%rsi)
    30302:      __(jg 1b)       
    31         __(ret)
     31        __(repret)
    3232_endfn
    3333
     
    188188        __(syscall)
    189189        __(movl $1,%eax)
    190 9:      __(ret)
     1909:      __(repret)
    191191_endfn
    192192
  • branches/x8664-call/ccl/lisp-kernel/x86-macros.s

    r6346 r6374  
    506506])
    507507
     508/*  On AMD hardware (at least), a one-byte RET instruction should be */
     509/*  prefixed with a REP prefix if it (a) is the target of a  */
     510/*  branch or (b) immediately follows a conditional branch not taken. */
     511define([repret],[
     512        .byte 0xf3
     513         ret
     514])
     515                               
    508516       
  • branches/x8664-call/ccl/lisp-kernel/x86-spentry64.s

    r6364 r6374  
    7575        __(Misc_Alloc_Fixed(%arg_z,aligned_bignum_size(2)))
    7676        __(movq %mm0,misc_data_offset(%arg_z))
    77 0:      __(ret)
     770:      __(repret)
    7878_endsubp(makes64)       
    7979
     
    17591759        __(_rplaca(%arg_y,%arg_z))
    17601760        __(ja 1f)
    1761 0:      __(ret)
     17610:      __(repret)
    176217621:      __(movq %arg_y,%imm0)
    17631763        __(subq lisp_global(heap_start),%imm0)
     
    17811781        __(_rplacd(%arg_y,%arg_z))
    17821782        __(ja 1f)
    1783 0:      __(ret)
     17830:      __(repret)
    178417841:      __(movq %arg_y,%imm0)
    17851785        __(subq lisp_global(heap_start),%imm0)
     
    18061806        __(movq %arg_z,misc_data_offset(%arg_x,%arg_y))
    18071807        __(ja 1f)
    1808 0:      __(ret)
     18080:      __(repret)
    180918091:      __(lea misc_data_offset(%arg_x,%arg_y),%imm0)
    18101810        __(subq lisp_global(heap_start),%imm0)
     
    18331833        __(movq %arg_z,misc_data_offset(%arg_x,%arg_y))
    18341834        __(ja 1f)
    1835 0:      __(ret)
     18350:      __(repret)
    183618361:      __(lea misc_data_offset(%arg_x,%arg_y),%imm0)
    18371837        __(subq lisp_global(heap_start),%imm0)
     
    267726772:      __(cmpq %imm0,%imm1)
    26782678        __(jne 1b)             
    2679         __(ret)
     2679        __(repret)
    268026809:      __(movq %rcontext:tcr.foreign_sp,%imm1)
    26812681        __(subq $dnode_size,%rcontext:tcr.foreign_sp)
     
    30203020        __(shr $num_subtag_bits,%imm0)
    30213021        __(movslq misc_data_offset-4(%arg_z,%imm0,4),%imm0)
    3022 8:      __(ret)
     30228:      __(repret)
    302330239:      __(uuo_error_reg_not_type(Rarg_z,error_object_not_integer))
    30243024_endsubp(integer_sign)
     
    32463246        __(testq %imm0,%imm0)
    32473247        __(js 9f)
    3248         __(ret)
     3248        __(repret)
    324932493:      __(movq misc_data_offset(%arg_z),%imm0)
    32503250        __(cmpl $0,misc_data_offset+8(%arg_z))
    32513251        __(jne 9f)
    3252         __(ret)
     3252        __(repret)
    325332539:      __(uuo_error_reg_not_type(Rarg_z,error_object_not_u64))
    32543254_endsubp(getu64)
     
    32703270        __(movq misc_data_offset(%arg_z),%imm0)
    32713271        __(jne 9f)
    3272 8:      __(ret)
     32728:      __(repret)
    327332739:      __(uuo_error_reg_not_type(Rarg_z,error_object_not_u64))
    32743274_endsubp(gets64)
     
    32953295        __(Misc_Alloc(%arg_z))
    32963296        __(movq %mm0,misc_data_offset(%arg_z))
    3297 9:      __(ret)
     32979:      __(repret)
    32983298_endsubp(makeu64)
    32993299
     
    33103310        __(jne 8f)
    331133117:      __(movq symbol.vcell(%arg_y),%arg_z)
    3312 8:      __(ret)         
     33128:      __(repret)             
    33133313_endsubp(specref)
    33143314
     
    33423342        __(jne,pt 9f)
    33433343        __(uuo_error_reg_unbound(Rarg_y))
    3344 9:      __(ret)         
     33449:      __(repret)             
    33453345_endsubp(specrefcheck)
    33463346
     
    34683468        __(movq %imm1,%rcontext:tcr.db_link)
    34693469        __(js,pn 1f)
    3470 0:      __(ret)
     34700:      __(repret)
    347134711:      __(testq %temp0,%temp0)
    34723472        __(js 0b)
    34733473        __(check_pending_enabled_interrupt(2f))
    3474 2:      __(ret)
     34742:      __(repret)     
    34753475_endsubp(unbind_interrupt_level)
    34763476
     
    34823482        __(shrq $fixnumshift,%imm0)
    34833483        __(jne _SPunbind_n)
    3484         __(ret)
     3484        __(repret)
    34853485_endsubp(progvrestore)
    34863486       
     
    34953495        __(addq %arg_y,%arg_z)
    34963496        __(jo,pn C(fix_one_bit_overflow))
    3497         __(ret)
     3497        __(repret)
    349834981:      __(jump_builtin(_builtin_plus,2))
    34993499_endsubp(builtin_plus)
     
    35103510        __(subq %arg_y,%arg_z)
    35113511        __(jo,pn C(fix_one_bit_overflow))
    3512         __(ret)
     3512        __(repret)
    351335131:      __(jump_builtin(_builtin_minus,2))
    35143514_endsubp(builtin_minus)
     
    371737174:      __(cmpb $fulltag_nil,%arg_z_b)
    371837185:      __(jnz 1b)
    3719         __(ret)                 
     3719        __(repret)                     
    37203720_endsubp(builtin_assq) 
    37213721
     
    37353735        __(movq %temp0,%arg_z)
    373637363:      __(jnz 1b)
    3737 4:      __(ret)                         
     37374:      __(repret)                             
    37383738_endsubp(builtin_memq)
    37393739
     
    37893789        __(negq %arg_z)
    37903790        __(jo,pn C(fix_one_bit_overflow))
    3791         __(ret)
     3791        __(repret)
    379237921:             
    37933793        __(jump_builtin(_builtin_negate,1))     
Note: See TracChangeset for help on using the changeset viewer.