Mercurial > hg > truffle
comparison src/cpu/x86/vm/templateTable_x86_64.cpp @ 1248:455df1b81409
6587322: dtrace probe object__alloc doesn't fire in some situations on amd64
Summary: Fix misplaced probe point
Reviewed-by: rasbold, phh
Contributed-by: neojia@gmail.com
author | kamg |
---|---|
date | Mon, 08 Feb 2010 13:49:03 -0500 |
parents | 85f13cdfbc1d |
children | 76c1d7d13ec5 |
comparison
equal
deleted
inserted
replaced
1218:ff3232b68fbb | 1248:455df1b81409 |
---|---|
3236 (intptr_t) markOopDesc::prototype()); // header (address 0x1) | 3236 (intptr_t) markOopDesc::prototype()); // header (address 0x1) |
3237 } | 3237 } |
3238 __ xorl(rcx, rcx); // use zero reg to clear memory (shorter code) | 3238 __ xorl(rcx, rcx); // use zero reg to clear memory (shorter code) |
3239 __ store_klass_gap(rax, rcx); // zero klass gap for compressed oops | 3239 __ store_klass_gap(rax, rcx); // zero klass gap for compressed oops |
3240 __ store_klass(rax, rsi); // store klass last | 3240 __ store_klass(rax, rsi); // store klass last |
3241 | |
3242 { | |
3243 SkipIfEqual skip(_masm, &DTraceAllocProbes, false); | |
3244 // Trigger dtrace event for fastpath | |
3245 __ push(atos); // save the return value | |
3246 __ call_VM_leaf( | |
3247 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_object_alloc), rax); | |
3248 __ pop(atos); // restore the return value | |
3249 | |
3250 } | |
3241 __ jmp(done); | 3251 __ jmp(done); |
3242 } | 3252 } |
3243 | 3253 |
3244 { | |
3245 SkipIfEqual skip(_masm, &DTraceAllocProbes, false); | |
3246 // Trigger dtrace event for fastpath | |
3247 __ push(atos); // save the return value | |
3248 __ call_VM_leaf( | |
3249 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_object_alloc), rax); | |
3250 __ pop(atos); // restore the return value | |
3251 } | |
3252 | 3254 |
3253 // slow case | 3255 // slow case |
3254 __ bind(slow_case); | 3256 __ bind(slow_case); |
3255 __ get_constant_pool(c_rarg1); | 3257 __ get_constant_pool(c_rarg1); |
3256 __ get_unsigned_2_byte_index_at_bcp(c_rarg2, 1); | 3258 __ get_unsigned_2_byte_index_at_bcp(c_rarg2, 1); |