提交 de3215e9 编写于 作者: K kevinw

Merge

...@@ -2016,8 +2016,10 @@ bool ConnectionGraph::is_oop_field(Node* n, int offset, bool* unsafe) { ...@@ -2016,8 +2016,10 @@ bool ConnectionGraph::is_oop_field(Node* n, int offset, bool* unsafe) {
// Check for unsafe oop field access // Check for unsafe oop field access
for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) { for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
int opcode = n->fast_out(i)->Opcode(); int opcode = n->fast_out(i)->Opcode();
if (opcode == Op_StoreP || opcode == Op_LoadP || if (opcode == Op_StoreP || opcode == Op_StoreN ||
opcode == Op_StoreN || opcode == Op_LoadN) { opcode == Op_LoadP || opcode == Op_LoadN ||
opcode == Op_GetAndSetP || opcode == Op_GetAndSetN ||
opcode == Op_CompareAndSwapP || opcode == Op_CompareAndSwapN) {
bt = T_OBJECT; bt = T_OBJECT;
(*unsafe) = true; (*unsafe) = true;
break; break;
...@@ -2037,8 +2039,10 @@ bool ConnectionGraph::is_oop_field(Node* n, int offset, bool* unsafe) { ...@@ -2037,8 +2039,10 @@ bool ConnectionGraph::is_oop_field(Node* n, int offset, bool* unsafe) {
// Allocation initialization, ThreadLocal field access, unsafe access // Allocation initialization, ThreadLocal field access, unsafe access
for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) { for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
int opcode = n->fast_out(i)->Opcode(); int opcode = n->fast_out(i)->Opcode();
if (opcode == Op_StoreP || opcode == Op_LoadP || if (opcode == Op_StoreP || opcode == Op_StoreN ||
opcode == Op_StoreN || opcode == Op_LoadN) { opcode == Op_LoadP || opcode == Op_LoadN ||
opcode == Op_GetAndSetP || opcode == Op_GetAndSetN ||
opcode == Op_CompareAndSwapP || opcode == Op_CompareAndSwapN) {
bt = T_OBJECT; bt = T_OBJECT;
break; break;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册