|
@@ -977,7 +977,10 @@ static void coverage_end(void)
|
|
void __naked __kprobes_test_case_start(void)
|
|
void __naked __kprobes_test_case_start(void)
|
|
{
|
|
{
|
|
__asm__ __volatile__ (
|
|
__asm__ __volatile__ (
|
|
- "stmdb sp!, {r4-r11} \n\t"
|
|
|
|
|
|
+ "mov r2, sp \n\t"
|
|
|
|
+ "bic r3, r2, #7 \n\t"
|
|
|
|
+ "mov sp, r3 \n\t"
|
|
|
|
+ "stmdb sp!, {r2-r11} \n\t"
|
|
"sub sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t"
|
|
"sub sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t"
|
|
"bic r0, lr, #1 @ r0 = inline data \n\t"
|
|
"bic r0, lr, #1 @ r0 = inline data \n\t"
|
|
"mov r1, sp \n\t"
|
|
"mov r1, sp \n\t"
|
|
@@ -997,7 +1000,8 @@ void __naked __kprobes_test_case_end_32(void)
|
|
"movne pc, r0 \n\t"
|
|
"movne pc, r0 \n\t"
|
|
"mov r0, r4 \n\t"
|
|
"mov r0, r4 \n\t"
|
|
"add sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t"
|
|
"add sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t"
|
|
- "ldmia sp!, {r4-r11} \n\t"
|
|
|
|
|
|
+ "ldmia sp!, {r2-r11} \n\t"
|
|
|
|
+ "mov sp, r2 \n\t"
|
|
"mov pc, r0 \n\t"
|
|
"mov pc, r0 \n\t"
|
|
);
|
|
);
|
|
}
|
|
}
|
|
@@ -1013,7 +1017,8 @@ void __naked __kprobes_test_case_end_16(void)
|
|
"bxne r0 \n\t"
|
|
"bxne r0 \n\t"
|
|
"mov r0, r4 \n\t"
|
|
"mov r0, r4 \n\t"
|
|
"add sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t"
|
|
"add sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t"
|
|
- "ldmia sp!, {r4-r11} \n\t"
|
|
|
|
|
|
+ "ldmia sp!, {r2-r11} \n\t"
|
|
|
|
+ "mov sp, r2 \n\t"
|
|
"bx r0 \n\t"
|
|
"bx r0 \n\t"
|
|
);
|
|
);
|
|
}
|
|
}
|