102 bool unaligned = (decorators & C2_UNALIGNED) != 0; |
102 bool unaligned = (decorators & C2_UNALIGNED) != 0; |
103 bool control_dependent = (decorators & C2_CONTROL_DEPENDENT_LOAD) != 0; |
103 bool control_dependent = (decorators & C2_CONTROL_DEPENDENT_LOAD) != 0; |
104 bool pinned = (decorators & C2_PINNED_LOAD) != 0; |
104 bool pinned = (decorators & C2_PINNED_LOAD) != 0; |
105 |
105 |
106 bool in_native = (decorators & IN_NATIVE) != 0; |
106 bool in_native = (decorators & IN_NATIVE) != 0; |
107 assert(!in_native, "not supported yet"); |
|
108 |
107 |
109 MemNode::MemOrd mo = access.mem_node_mo(); |
108 MemNode::MemOrd mo = access.mem_node_mo(); |
110 LoadNode::ControlDependency dep = pinned ? LoadNode::Pinned : LoadNode::DependsOnlyOnTest; |
109 LoadNode::ControlDependency dep = pinned ? LoadNode::Pinned : LoadNode::DependsOnlyOnTest; |
111 Node* control = control_dependent ? kit->control() : NULL; |
110 Node* control = control_dependent ? kit->control() : NULL; |
112 |
111 |
113 Node* load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo, |
112 Node* load; |
114 dep, requires_atomic_access, unaligned, mismatched); |
113 if (in_native) { |
|
114 load = kit->make_load(control, adr, val_type, access.type(), mo); |
|
115 } else { |
|
116 load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo, |
|
117 dep, requires_atomic_access, unaligned, mismatched); |
|
118 } |
115 access.set_raw_access(load); |
119 access.set_raw_access(load); |
116 |
120 |
117 return load; |
121 return load; |
118 } |
122 } |
119 |
123 |