1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "executed"
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "exception for null object"
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /*
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Synchronize on an object.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /* monitor-enter vAA */
79f601a917c8878204482c37aec7005054b6776fabuzbee    movl    rSELF,%ecx
8f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_R %eax rINST               # eax<- vAA
9f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    FETCH_INST_WORD 1
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    testl   %eax,%eax                   # null object?
1101605d2b668e8e1701cfdfa302dde847b9171fc9Carl Shapiro    EXPORT_PC                           # need for precise GC
12a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    je     common_errNullObject
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl    %ecx,OUT_ARG0(%esp)
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl    %eax,OUT_ARG1(%esp)
15a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    SPILL(rIBASE)
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    call    dvmLockObject               # dvmLockObject(self,object)
17a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    UNSPILL(rIBASE)
18a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    FETCH_INST_OPCODE 1 %ecx
19f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    ADVANCE_PC 1
20a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GOTO_NEXT_R %ecx
21