blob: c0f7d6e3bbd01b2379fe562c7464667538778907 [file] [log] [blame]
/*
* Increment profile counter for this trace, and decrement
* sample counter. If sample counter goes below zero, turn
* off profiling.
*
* On entry
* (lr-11) is address of pointer to counter. Note: the counter
* actually exists 10 bytes before the return target, but because
* we are arriving from thumb mode, lr will have its low bit set.
*/
ldr r0, [lr,#-11]
ldr r1, [rSELF, #offThread_pProfileCountdown]
ldr r2, [r0] @ get counter
ldr r3, [r1] @ get countdown timer
add r2, #1
subs r2, #1
blt .L${opcode}_disable_profiling
str r2, [r0]
str r3, [r1]
bx lr
.L${opcode}_disable_profiling:
mov r4, lr @ preserve lr
ldr r0, .LdvmJitTraceProfilingOff
blx r0
bx r4