Mercurial > hg > truffle
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 |