diff -r a151135b0cf9 -r aa2539c91954 debugsrv/runmodedebug/rmdebug_test/rm_debug/debug_targets/d_rmdebug_step_test_armv4.s --- a/debugsrv/runmodedebug/rmdebug_test/rm_debug/debug_targets/d_rmdebug_step_test_armv4.s Wed Sep 29 17:45:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -; Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). -; All rights reserved. -; This component and the accompanying materials are made available -; under the terms of the License "Eclipse Public License v1.0" -; which accompanies this distribution, and is available -; at the URL "http://www.eclipse.org/legal/epl-v10.html". -; -; Initial Contributors: -; Nokia Corporation - initial contribution. -; -; Contributors: -; -; Description: -; -; - - AREA |d-rmdebug-bkpt$$Code|, CODE, READONLY, ALIGN=6 - - CODE32 - - ; ARM tests - -; -; Non-PC modifying -; - EXPORT RMDebug_StepTest_Non_PC_Modifying - EXPORT RMDebug_StepTest_Non_PC_Modifying_OK - -RMDebug_StepTest_Non_PC_Modifying - mov r0,r0 ; nop -RMDebug_StepTest_Non_PC_Modifying_OK - bx lr ; should return to normal execution of the test thread - -; -; Branch -; - EXPORT RMDebug_StepTest_Branch - EXPORT RMDebug_StepTest_Branch_1 - -RMDebug_StepTest_Branch - b RMDebug_StepTest_Branch_1 - mov r0, #2 ; if the pc ends up here, we know its gone wrong -RMDebug_StepTest_Branch_1 - bx lr ; return - -; -; Branch and Link -; - EXPORT RMDebug_StepTest_Branch_And_Link - EXPORT RMDebug_StepTest_Branch_And_Link_1 - EXPORT RMDebug_StepTest_Branch_And_Link_2 - -RMDebug_StepTest_Branch_And_Link - mov r0, lr ; preserve lr for the moment -RMDebug_StepTest_Branch_And_Link_1 - bl RMDebug_StepTest_Branch_And_Link_2 - mov r1, #1 ; insert a gap in the instruction stream so we know we branched. -RMDebug_StepTest_Branch_And_Link_2 - mov lr, r0 ; restore lr - bx lr ; should return to normal execution of the test thread - -; -; MOV PC -; - EXPORT RMDebug_StepTest_MOV_PC - EXPORT RMDebug_StepTest_MOV_PC_1 - EXPORT RMDebug_StepTest_MOV_PC_2 - -RMDebug_StepTest_MOV_PC - mov r0, #4 -RMDebug_StepTest_MOV_PC_1 - add pc, pc, r0 ; should be a jump (bear in mind reading pc = current inst + 8bytes for arm) - mov r0, #1 ; Simple instructions which allow us to test where the PC really is - mov r0, #2 ; just by reading r0. -RMDebug_StepTest_MOV_PC_2 - mov r0, #3 ; - mov r0, #4 ; - bx lr ; should return to normal execution of the test thread - -; -; LDR PC -; - EXPORT RMDebug_StepTest_LDR_PC - EXPORT RMDebug_StepTest_LDR_PC_1 - -RMDebug_StepTest_LDR_PC - ldr pc, =RMDebug_StepTest_LDR_PC_1 - mov r0, #1 ; separate the branch target so we can prove it works -RMDebug_StepTest_LDR_PC_1 - bx lr ; should return to normal execution of the test thread - -; -; Stepping performance tests -; -; This counts down from 100000 to 0 -; This means that for all practical purposes -; we can single-step as much as we like -; in less than one second and have some likelyhood -; that we will not step too far from our loop - - EXPORT RMDebug_StepTest_Count - EXPORT RMDebug_StepTest_Count_1 - EXPORT RMDebug_StepTest_Count_2 - -RMDebug_StepTest_Count - ldr r2, =100000 -RMDebug_StepTest_Count_1 - subs r2, r2, #1 -RMDebug_StepTest_Count_2 - bne RMDebug_StepTest_Count_1 - bx lr - -; -; ARM multiple-step ( 5 steps ) -; - EXPORT RMDebug_StepTest_ARM_Step_Multiple - EXPORT RMDebug_StepTest_ARM_Step_Multiple_1 - -RMDebug_StepTest_ARM_Step_Multiple - mov r0,r0 ; nop - mov r0,r0 ; nop - mov r0,r0 ; nop - mov r0,r0 ; nop - mov r0,r0 ; nop -RMDebug_StepTest_ARM_Step_Multiple_1 - bx lr - - END - -; End of file - d_rmdebug_step_test_armv4.s