Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
f6a883c6
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f6a883c6
编写于
4月 29, 2014
作者:
M
mikael
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8042059: Various fixes to linux/sparc
Reviewed-by: twisti, kvn
上级
d5d793b9
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
29 addition
and
33 deletion
+29
-33
agent/src/os/linux/libproc.h
agent/src/os/linux/libproc.h
+1
-13
src/cpu/sparc/vm/frame_sparc.hpp
src/cpu/sparc/vm/frame_sparc.hpp
+2
-2
src/cpu/sparc/vm/frame_sparc.inline.hpp
src/cpu/sparc/vm/frame_sparc.inline.hpp
+7
-0
src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp
src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp
+2
-2
src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
+17
-16
未找到文件。
agent/src/os/linux/libproc.h
浏览文件 @
f6a883c6
...
...
@@ -34,19 +34,7 @@
#include "libproc_md.h"
#endif
#if defined(sparc) || defined(sparcv9)
/*
If _LP64 is defined ptrace.h should be taken from /usr/include/asm-sparc64
otherwise it should be from /usr/include/asm-sparc
These two files define pt_regs structure differently
*/
#ifdef _LP64
#include "asm-sparc64/ptrace.h"
#else
#include "asm-sparc/ptrace.h"
#endif
#endif //sparc or sparcv9
#include <linux/ptrace.h>
/************************************************************************************
...
...
src/cpu/sparc/vm/frame_sparc.hpp
浏览文件 @
f6a883c6
...
...
@@ -259,8 +259,8 @@
// next two fns read and write Lmonitors value,
private
:
BasicObjectLock
*
interpreter_frame_monitors
()
const
{
return
*
interpreter_frame_monitors_addr
();
}
void
interpreter_frame_set_monitors
(
BasicObjectLock
*
monitors
)
{
*
interpreter_frame_monitors_addr
()
=
monitors
;
}
BasicObjectLock
*
interpreter_frame_monitors
()
const
;
void
interpreter_frame_set_monitors
(
BasicObjectLock
*
monitors
)
;
#else
public
:
inline
interpreterState
get_interpreterState
()
const
{
...
...
src/cpu/sparc/vm/frame_sparc.inline.hpp
浏览文件 @
f6a883c6
...
...
@@ -226,6 +226,13 @@ inline Method** frame::interpreter_frame_method_addr() const {
return
(
Method
**
)
sp_addr_at
(
Lmethod
->
sp_offset_in_saved_window
());
}
inline
BasicObjectLock
*
frame
::
interpreter_frame_monitors
()
const
{
return
*
interpreter_frame_monitors_addr
();
}
inline
void
frame
::
interpreter_frame_set_monitors
(
BasicObjectLock
*
monitors
)
{
*
interpreter_frame_monitors_addr
()
=
monitors
;
}
// Constant pool cache
...
...
src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp
浏览文件 @
f6a883c6
...
...
@@ -78,12 +78,12 @@ inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) {
__asm__
volatile
(
"1:
\n\t
"
" ldx [%2], %%o2
\n\t
"
" add %
0
, %%o2, %%o3
\n\t
"
" add %
1
, %%o2, %%o3
\n\t
"
" casx [%2], %%o2, %%o3
\n\t
"
" cmp %%o2, %%o3
\n\t
"
" bne %%xcc, 1b
\n\t
"
" nop
\n\t
"
" add %
0
, %%o2, %0
\n\t
"
" add %
1
, %%o2, %0
\n\t
"
:
"=r"
(
rv
)
:
"r"
(
add_value
),
"r"
(
dest
)
:
"memory"
,
"o2"
,
"o3"
);
...
...
src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
浏览文件 @
f6a883c6
...
...
@@ -302,29 +302,30 @@ void os::print_register_info(outputStream *st, void *context) {
if
(
context
==
NULL
)
return
;
ucontext_t
*
uc
=
(
ucontext_t
*
)
context
;
sigcontext
*
sc
=
(
sigcontext
*
)
context
;
intptr_t
*
sp
=
(
intptr_t
*
)
os
::
Linux
::
ucontext_get_sp
(
uc
);
st
->
print_cr
(
"Register to memory mapping:"
);
st
->
cr
();
// this is only for the "general purpose" registers
st
->
print
(
"G1="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
G1
]);
st
->
print
(
"G2="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
G2
]);
st
->
print
(
"G3="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
G3
]);
st
->
print
(
"G4="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
G4
]);
st
->
print
(
"G5="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
G5
]);
st
->
print
(
"G6="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
G6
]);
st
->
print
(
"G7="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
G7
]);
st
->
print
(
"G1="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_G1
]);
st
->
print
(
"G2="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_G2
]);
st
->
print
(
"G3="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_G3
]);
st
->
print
(
"G4="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_G4
]);
st
->
print
(
"G5="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_G5
]);
st
->
print
(
"G6="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_G6
]);
st
->
print
(
"G7="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_G7
]);
st
->
cr
();
st
->
print
(
"O0="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O0
]);
st
->
print
(
"O1="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O1
]);
st
->
print
(
"O2="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O2
]);
st
->
print
(
"O3="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O3
]);
st
->
print
(
"O4="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O4
]);
st
->
print
(
"O5="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O5
]);
st
->
print
(
"O6="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O6
]);
st
->
print
(
"O7="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_
_
O7
]);
st
->
print
(
"O0="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O0
]);
st
->
print
(
"O1="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O1
]);
st
->
print
(
"O2="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O2
]);
st
->
print
(
"O3="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O3
]);
st
->
print
(
"O4="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O4
]);
st
->
print
(
"O5="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O5
]);
st
->
print
(
"O6="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O6
]);
st
->
print
(
"O7="
);
print_location
(
st
,
SIG_REGS
(
sc
).
u_regs
[
CON_O7
]);
st
->
cr
();
st
->
print
(
"L0="
);
print_location
(
st
,
sp
[
L0
->
sp_offset_in_saved_window
()]);
...
...
@@ -516,7 +517,7 @@ inline static bool checkICMiss(sigcontext* uc, address* pc, address* stub) {
if
(
nativeInstruction_at
(
*
pc
)
->
is_ic_miss_trap
())
{
#ifdef ASSERT
#ifdef TIERED
CodeBlob
*
cb
=
CodeCache
::
find_blob_unsafe
(
pc
);
CodeBlob
*
cb
=
CodeCache
::
find_blob_unsafe
(
*
pc
);
assert
(
cb
->
is_compiled_by_c2
(),
"Wrong compiler"
);
#endif // TIERED
#endif // ASSERT
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录