< prev index next >

src/os_cpu/solaris_sparc/vm/solaris_sparc.il

Print this page
rev 13069 : imported patch ClearFPUAtPark


  15 // You should have received a copy of the GNU General Public License version
  16 // 2 along with this work; if not, write to the Free Software Foundation,
  17 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18 //
  19 // Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20 // or visit www.oracle.com if you need additional information or have any
  21 // questions.
  22 //
  23 //
  24 
  25   // Get the raw thread ID from %g7
  26 
  27        .inline  _raw_thread_id, 0
  28        .register %g7,#scratch
  29        .volatile
  30        mov     %g7, %o0
  31        .nonvolatile
  32        .end
  33 
  34 
  35   // Clear SPARC fprs.FEF DU and DL bits --
  36   // allows the kernel to avoid saving FPU state at context-switch time.
  37   // Use for state-transition points (into _thread_blocked) or when
  38   // parking.
  39 
  40        .inline _mark_fpu_nosave, 0
  41        .volatile
  42        wr   %g0, 0, %fprs
  43        .nonvolatile
  44        .end
  45 
  46   // Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
  47   //
  48   // Arguments:
  49   //      exchange_value: O0
  50   //      dest:           O1
  51   //
  52   // Results:
  53   //     O0: the value previously stored in dest
  54 
  55         .inline _Atomic_swap32, 2
  56         .volatile
  57         swap    [%o1],%o0
  58         .nonvolatile
  59         .end
  60 
  61 
  62   // Support for intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t * dest).
  63   //
  64   // 64-bit
  65   //




  15 // You should have received a copy of the GNU General Public License version
  16 // 2 along with this work; if not, write to the Free Software Foundation,
  17 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18 //
  19 // Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20 // or visit www.oracle.com if you need additional information or have any
  21 // questions.
  22 //
  23 //
  24 
  25   // Get the raw thread ID from %g7
  26 
  27        .inline  _raw_thread_id, 0
  28        .register %g7,#scratch
  29        .volatile
  30        mov     %g7, %o0
  31        .nonvolatile
  32        .end
  33 
  34 











  35   // Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
  36   //
  37   // Arguments:
  38   //      exchange_value: O0
  39   //      dest:           O1
  40   //
  41   // Results:
  42   //     O0: the value previously stored in dest
  43 
  44         .inline _Atomic_swap32, 2
  45         .volatile
  46         swap    [%o1],%o0
  47         .nonvolatile
  48         .end
  49 
  50 
  51   // Support for intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t * dest).
  52   //
  53   // 64-bit
  54   //


< prev index next >