comparison src/cpu/x86/vm/interp_masm_x86.cpp @ 14260:8cdf3f43f63e

8026253: New type profiling points: sparc support Summary: c1 and interpreter support for new type profiling on sparc Reviewed-by: kvn, twisti
author roland
date Tue, 14 Jan 2014 14:51:47 +0100
parents 5ccbab1c69f3
children 4ca6dc0799b6 ce9fd31ffd14
comparison
equal deleted inserted replaced
14259:ee5727365ce5 14260:8cdf3f43f63e
125 125
126 bind(done); 126 bind(done);
127 127
128 if (MethodData::profile_return()) { 128 if (MethodData::profile_return()) {
129 // We're right after the type profile for the last 129 // We're right after the type profile for the last
130 // argument. tmp is the number of cell left in the 130 // argument. tmp is the number of cells left in the
131 // CallTypeData/VirtualCallTypeData to reach its end. Non null 131 // CallTypeData/VirtualCallTypeData to reach its end. Non null
132 // if there's a return to profile. 132 // if there's a return to profile.
133 assert(ReturnTypeEntry::static_cell_count() < TypeStackSlotEntries::per_arg_count(), "can't move past ret type"); 133 assert(ReturnTypeEntry::static_cell_count() < TypeStackSlotEntries::per_arg_count(), "can't move past ret type");
134 shll(tmp, exact_log2(DataLayout::cell_size)); 134 shll(tmp, exact_log2(DataLayout::cell_size));
135 addptr(mdp, tmp); 135 addptr(mdp, tmp);
196 // Compute a pointer to the area for parameters from the offset 196 // Compute a pointer to the area for parameters from the offset
197 // and move the pointer to the slot for the last 197 // and move the pointer to the slot for the last
198 // parameters. Collect profiling from last parameter down. 198 // parameters. Collect profiling from last parameter down.
199 // mdo start + parameters offset + array length - 1 199 // mdo start + parameters offset + array length - 1
200 addptr(mdp, tmp1); 200 addptr(mdp, tmp1);
201 movptr(tmp1, Address(mdp, in_bytes(ArrayData::array_len_offset()))); 201 movptr(tmp1, Address(mdp, ArrayData::array_len_offset()));
202 decrement(tmp1, TypeStackSlotEntries::per_arg_count()); 202 decrement(tmp1, TypeStackSlotEntries::per_arg_count());
203 203
204 Label loop; 204 Label loop;
205 bind(loop); 205 bind(loop);
206 206