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 //
|