< prev index next >

src/hotspot/os_cpu/bsd_x86/bsd_x86_32.s

Print this page
rev 51258 : [mq]: spin


  46         .globl SYMBOL(_Copy_conjoint_jints_atomic)
  47         .globl SYMBOL(_Copy_arrayof_conjoint_jints)
  48         .globl SYMBOL(_Copy_conjoint_jlongs_atomic)
  49         .globl SYMBOL(_mmx_Copy_arrayof_conjoint_jshorts)
  50 
  51         .globl SYMBOL(_Atomic_cmpxchg_long)
  52         .globl SYMBOL(_Atomic_move_long)
  53 
  54         .text
  55 
  56 # Support for void os::Solaris::init_thread_fpu_state() in os_solaris_i486.cpp
  57 # Set fpu to 53 bit precision.  This happens too early to use a stub.
  58 # ported from solaris_x86_32.s
  59         .p2align 4,,15
  60 SYMBOL(fixcw):
  61         pushl    $0x27f
  62         fldcw    0(%esp)
  63         popl     %eax
  64         ret
  65 
  66         .globl  SYMBOL(SpinPause)
  67         ELF_TYPE(SpinPause,@function)
  68         .p2align 4,,15
  69 SYMBOL(SpinPause):
  70         rep
  71         nop
  72         movl    $1, %eax
  73         ret
  74 
  75         # Support for void Copy::conjoint_bytes(void* from,
  76         #                                       void* to,
  77         #                                       size_t count)
  78         .p2align 4,,15
  79         ELF_TYPE(_Copy_conjoint_bytes,@function)
  80 SYMBOL(_Copy_conjoint_bytes):
  81         pushl    %esi
  82         movl     4+12(%esp),%ecx      # count
  83         pushl    %edi
  84         movl     8+ 4(%esp),%esi      # from
  85         movl     8+ 8(%esp),%edi      # to
  86         cmpl     %esi,%edi
  87         leal     -1(%esi,%ecx),%eax   # from + count - 1
  88         jbe      cb_CopyRight
  89         cmpl     %eax,%edi
  90         jbe      cb_CopyLeft
  91         # copy from low to high
  92 cb_CopyRight:
  93         cmpl     $3,%ecx
  94         jbe      5f                   # <= 3 bytes




  46         .globl SYMBOL(_Copy_conjoint_jints_atomic)
  47         .globl SYMBOL(_Copy_arrayof_conjoint_jints)
  48         .globl SYMBOL(_Copy_conjoint_jlongs_atomic)
  49         .globl SYMBOL(_mmx_Copy_arrayof_conjoint_jshorts)
  50 
  51         .globl SYMBOL(_Atomic_cmpxchg_long)
  52         .globl SYMBOL(_Atomic_move_long)
  53 
  54         .text
  55 
  56 # Support for void os::Solaris::init_thread_fpu_state() in os_solaris_i486.cpp
  57 # Set fpu to 53 bit precision.  This happens too early to use a stub.
  58 # ported from solaris_x86_32.s
  59         .p2align 4,,15
  60 SYMBOL(fixcw):
  61         pushl    $0x27f
  62         fldcw    0(%esp)
  63         popl     %eax
  64         ret
  65 









  66         # Support for void Copy::conjoint_bytes(void* from,
  67         #                                       void* to,
  68         #                                       size_t count)
  69         .p2align 4,,15
  70         ELF_TYPE(_Copy_conjoint_bytes,@function)
  71 SYMBOL(_Copy_conjoint_bytes):
  72         pushl    %esi
  73         movl     4+12(%esp),%ecx      # count
  74         pushl    %edi
  75         movl     8+ 4(%esp),%esi      # from
  76         movl     8+ 8(%esp),%edi      # to
  77         cmpl     %esi,%edi
  78         leal     -1(%esi,%ecx),%eax   # from + count - 1
  79         jbe      cb_CopyRight
  80         cmpl     %eax,%edi
  81         jbe      cb_CopyLeft
  82         # copy from low to high
  83 cb_CopyRight:
  84         cmpl     $3,%ecx
  85         jbe      5f                   # <= 3 bytes


< prev index next >