Home | History | Annotate | Download | only in Thumb2

Lines Matching full:lock

211  * Handle simple case (thin lock) inline.  If it's complicated, bail
212 * out to the heavyweight lock/unlock routines. We'll use dedicated
214 * to bail to dvm[Lock/Unlock]Object(self, object)
216 * r0 -> self pointer [arg0 for dvm[Lock/Unlock]Object
217 * r1 -> object [arg1 for dvm[Lock/Unlock]Object
218 * r2 -> intial contents of object->lock, later result of strex
220 * r7 -> temp to hold new lock value [unlock only]
223 * The result of the strex is 0 if we acquire the lock.
225 * See comments in Sync.c for the layout of the lock word.
228 * simple case is thin lock, held by no-one. For monitor exit,
229 * the simple case is thin lock, held by the unlocking thread with
232 * A minor complication is that there is a field in the lock word
252 offsetof(Object, lock) >> 2); // Get object->lock
254 // Is lock unheld on lock or held by us (==threadId) on unlock?
259 newLIR4(cUnit, kThumb2Strex, r2, r3, r1, offsetof(Object, lock) >> 2);
288 * we've determined that the lock is thin and that we own it with
305 loadWordDisp(cUnit, r1, offsetof(Object, lock), r2); // Get object->lock
307 // Is lock unheld on lock or held by us (==threadId) on unlock?
316 storeWordDisp(cUnit, r1, offsetof(Object, lock), r7);