Ruby
2.5.0dev(2017-10-22revision60238)
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
Data Structure Index
+
Data Fields
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
+
Files
File List
+
Globals
+
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
$
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
+
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
+
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
y
+
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
v
y
+
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
+
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
sparc.c
Go to the documentation of this file.
1
/********************************************************************
2
Flush register windows on sparc.
3
4
This function is in a separate file to prevent inlining. The "flushw"
5
assembler instruction used on sparcv9 flushes all register windows
6
except the current one, so if it is inlined, the current register
7
window of the process executing the instruction will not be flushed
8
correctly.
9
10
See http://bugs.ruby-lang.org/issues/5244 for discussion.
11
*********************************************************************/
12
void
13
rb_sparc_flush_register_windows
(
void
)
14
{
15
/*
16
* gcc doesn't provide "asm" keyword if -ansi and the various -std options
17
* are given.
18
* http://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
19
*/
20
#ifndef __GNUC__
21
#define __asm__ asm
22
#endif
23
24
__asm__
25
#ifdef __GNUC__
26
__volatile__
27
#endif
28
29
/* This condition should be in sync with one in configure.ac */
30
#if defined(__sparcv9) || defined(__sparc_v9__) || defined(__arch64__)
31
# ifdef __GNUC__
32
(
"flushw"
: : :
"%o7"
)
33
#
else
34
(
"flushw"
)
35
# endif
/* __GNUC__ */
36
#else
37
(
"ta 0x03"
)
38
#endif
39
;
40
}
rb_sparc_flush_register_windows
void rb_sparc_flush_register_windows(void)
Definition:
sparc.c:13
__asm__
#define __asm__
Generated by
1.8.13