1#if defined(WITH_SELF_VERIFICATION) 2 /* 3 * This handler encapsulates heap memory ops for selfVerification mode. 4 * 5 * The call to the handler is inserted prior to a heap memory operation. 6 * This handler then calls a function to decode the memory op, and process 7 * it accordingly. Afterwards, the handler changes the return address to 8 * skip the memory op so it never gets executed. 9 */ 10 vpush {d0-d15} @ save out all fp registers 11 push {r0-r12,lr} @ save out all registers 12 ldr r2, .LdvmSelfVerificationMemOpDecode @ defined in footer.S 13 mov r0, lr @ arg0 <- link register 14 mov r1, sp @ arg1 <- stack pointer 15 blx r2 @ decode and handle the mem op 16 pop {r0-r12,lr} @ restore all registers 17 vpop {d0-d15} @ restore all fp registers 18 bx lr @ return to compiled code 19#endif 20