src/os_cpu/solaris_x86/vm/solaris_x86_32.s

Print this page
rev 4810 : 8016697: PPC64 (part 5): Use stubs to implement safefetch
Summary: Implement Safefetch as stub routines. This reduces compiler and os dependencies.
Reviewed-by: twisti, kvn


  38         .globl _Copy_arrayof_conjoint_bytes
  39         .globl _Copy_conjoint_jshorts_atomic
  40         .globl _Copy_arrayof_conjoint_jshorts
  41         .globl _Copy_conjoint_jints_atomic
  42         .globl _Copy_arrayof_conjoint_jints
  43         .globl _Copy_conjoint_jlongs_atomic
  44         .globl _mmx_Copy_arrayof_conjoint_jshorts
  45 
  46         .section .text,"ax"
  47 
  48 / Support for void os::Solaris::init_thread_fpu_state() in os_solaris_i486.cpp
  49 / Set fpu to 53 bit precision.  This happens too early to use a stub.
  50         .align   16
  51 fixcw:
  52         pushl    $0x27f
  53         fldcw    0(%esp)
  54         popl     %eax
  55         ret
  56 
  57        .align  16
  58        .globl  SafeFetch32
  59        .globl  SafeFetchN
  60        .globl  Fetch32PFI, Fetch32Resume
  61 SafeFetch32:
  62 SafeFetchN:
  63         movl    0x8(%esp), %eax
  64         movl    0x4(%esp), %ecx
  65 Fetch32PFI:
  66         movl    (%ecx), %eax
  67 Fetch32Resume:
  68         ret
  69 
  70 
  71         .align  16
  72         .globl  SpinPause
  73 SpinPause:
  74         rep 
  75         nop
  76         movl    $1, %eax
  77         ret
  78 
  79 
  80 / Test SSE availability, used by os_solaris_i486.cpp
  81         .align   16
  82 sse_check:
  83         / Fault if SSE not available
  84         xorps %xmm0,%xmm0
  85         / No fault
  86         movl $1,%eax
  87         ret
  88         / Signal handler continues here if SSE is not available
  89 sse_unavailable:
  90         xorl %eax,%eax
  91         ret




  38         .globl _Copy_arrayof_conjoint_bytes
  39         .globl _Copy_conjoint_jshorts_atomic
  40         .globl _Copy_arrayof_conjoint_jshorts
  41         .globl _Copy_conjoint_jints_atomic
  42         .globl _Copy_arrayof_conjoint_jints
  43         .globl _Copy_conjoint_jlongs_atomic
  44         .globl _mmx_Copy_arrayof_conjoint_jshorts
  45 
  46         .section .text,"ax"
  47 
  48 / Support for void os::Solaris::init_thread_fpu_state() in os_solaris_i486.cpp
  49 / Set fpu to 53 bit precision.  This happens too early to use a stub.
  50         .align   16
  51 fixcw:
  52         pushl    $0x27f
  53         fldcw    0(%esp)
  54         popl     %eax
  55         ret
  56 
  57         .align  16














  58         .globl  SpinPause
  59 SpinPause:
  60         rep 
  61         nop
  62         movl    $1, %eax
  63         ret
  64 
  65 
  66 / Test SSE availability, used by os_solaris_i486.cpp
  67         .align   16
  68 sse_check:
  69         / Fault if SSE not available
  70         xorps %xmm0,%xmm0
  71         / No fault
  72         movl $1,%eax
  73         ret
  74         / Signal handler continues here if SSE is not available
  75 sse_unavailable:
  76         xorl %eax,%eax
  77         ret