Cross Reference: linux_sparc.s
xref
: /
openjdk7
/
hotspot
/
src
/
os_cpu
/
linux_sparc
/
vm
/
linux_sparc.s
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
#
#
Copyright
(c)
2005
,
2008
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
#
DO
NOT
ALTER
OR
REMOVE
COPYRIGHT
NOTICES
OR
THIS
FILE
HEADER
.
#
#
This
code
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
#
under
the
terms
of
the
GNU
General
Public
License
version
2
only
,
as
#
published
by
the
Free
Software
Foundation
.
#
#
This
code
is
distributed
in
the
hope
that
it
will
be
useful
,
but
WITHOUT
#
ANY
WARRANTY
;
without
even
the
implied
warranty
of
MERCHANTABILITY
or
#
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
GNU
General
Public
License
#
version
2
for
more
details
(a
copy
is
included
in
the
LICENSE
file
that
#
accompanied
this
code
).
#
#
You
should
have
received
a
copy
of
the
GNU
General
Public
License
version
#
2
along
with
this
work
;
if
not
,
write
to
the
Free
Software
Foundation
,
#
Inc
.,
51
Franklin
St
,
Fifth
Floor
,
Boston
,
MA
0
2110
-
1301
USA
.
#
#
Please
contact
Oracle
,
500
Oracle
Parkway
,
Redwood
Shores
,
CA
94065
USA
#
or
visit
www
.
oracle
.
com
if
you
need
additional
information
or
have
any
#
questions
.
#
#
Prototype
:
int
SafeFetch32
(
int
*
adr
,
int
ErrValue
)
#
The
"ld"
at
Fetch32
is
potentially
faulting
instruction
.
#
If
the
instruction
traps
the
trap
handler
will
arrange
#
for
control
to
resume
at
Fetch32Resume
.
#
By
convention
with
the
trap
handler
we
ensure
there
is
a
non
-
CTI
#
instruction
in
the
trap
shadow
.
.
globl
SafeFetch32
,
Fetch32PFI
,
Fetch32Resume
.
globl
SafeFetchN
.
align
32
.
type
SafeFetch32
,@
function
SafeFetch32
:
mov
%
o0
, %
g1
mov
%
o1
, %
o0
Fetch32PFI
:
# <--
Potentially
faulting
instruction
ld
[%
g1
], %
o0
Fetch32Resume
:
nop
retl
nop
.
globl
SafeFetchN
,
FetchNPFI
,
FetchNResume
.
type
SafeFetchN
,@
function
.
align
32
SafeFetchN
:
mov
%
o0
, %
g1
mov
%
o1
, %
o0
FetchNPFI
:
ldn
[%
g1
], %
o0
FetchNResume
:
nop
retl
nop
#
Possibilities
:
# --
membar
# --
CAS
(
SP
+
BIAS
,
G0
,
G0
)
# --
wr
%
g0
, %
asi
.
globl
SpinPause
.
type
SpinPause
,@
function
.
align
32
SpinPause
:
retl
mov
%
g0
, %
o0
.
globl
_Copy_conjoint_jlongs_atomic
.
type
_Copy_conjoint_jlongs_atomic
,@
function
_Copy_conjoint_jlongs_atomic
:
cmp
%
o0
, %
o1
bleu
4f
sll
%
o2
,
3
, %
o4
ba
2f
1
:
subcc
%
o4
,
8
, %
o4
std
%
o2
, [%
o1
]
add
%
o0
,
8
, %
o0
add
%
o1
,
8
, %
o1
2
:
bge
,a
1
b
ldd
[%
o0
], %
o2
ba
5f
nop
3
:
std
%
o2
, [%
o1
+%
o4
]
4
:
subcc
%
o4
,
8
, %
o4
bge
,a
3
b
ldd
[%
o0
+%
o4
], %
o2
5
:
retl
nop
.
globl
_flush_reg_windows
.
align
32
_flush_reg_windows
:
ta
0x03
retl
mov
%
fp
, %
o0