|
From: <sv...@va...> - 2016-08-06 12:32:44
|
Author: sewardj
Date: Sat Aug 6 13:32:37 2016
New Revision: 15931
Log:
do_vldm_vstm_check: don't use caller saved FP ('s') registers to hold
data that we expect to stay alive over calls to printf. Fixes erratic
failures of this test.
Modified:
trunk/none/tests/arm/vfp.c
Modified: trunk/none/tests/arm/vfp.c
==============================================================================
--- trunk/none/tests/arm/vfp.c (original)
+++ trunk/none/tests/arm/vfp.c Sat Aug 6 13:32:37 2016
@@ -848,55 +848,55 @@
printf("do_vldm_vstm_check:\n");
__asm__ volatile(
"mov r1, %0\n\t"
- "vldmia r1!, {s0, s1, s2, s3}\n\t"
+ "vldmia r1!, {s16, s17, s18, s19}\n\t"
"mov r0, %1\n\t"
"sub r1, r1, %0\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s2\n\t"
+ "vmov r1, s18\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s3\n\t"
+ "vmov r1, s19\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s0\n\t"
+ "vmov r1, s16\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
/* --- */
"add r1, %0, #32\n\t"
- "vldmdb r1!, {s5, s6}\n\t"
+ "vldmdb r1!, {s25, s26}\n\t"
"mov r0, %1\n\t"
"sub r1, r1, %0\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s5\n\t"
+ "vmov r1, s25\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s6\n\t"
+ "vmov r1, s26\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
/* --- */
"add r1, %0, #4\n\t"
- "vldmia r1, {s0, s1, s2, s3}\n\t"
+ "vldmia r1, {s20, s21, s22, s23}\n\t"
"mov r0, %1\n\t"
"sub r1, r1, %0\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s2\n\t"
+ "vmov r1, s22\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s3\n\t"
+ "vmov r1, s23\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
"mov r0, %1\n\t"
- "vmov r1, s0\n\t"
+ "vmov r1, s20\n\t"
"mov r3, r1\n\t"
"bl printf\n\t"
/* --- */
@@ -970,15 +970,15 @@
"bl printf\n\t"
/* --- */
"mov r0, #0x55\n\t"
- "vmov s0, r0\n\t"
+ "vmov s20, r0\n\t"
"mov r0, #0x56\n\t"
- "vmov s1, r0\n\t"
+ "vmov s21, r0\n\t"
"mov r0, #0x57\n\t"
- "vmov s2, r0\n\t"
+ "vmov s22, r0\n\t"
"mov r0, #0x58\n\t"
- "vmov s3, r0\n\t"
+ "vmov s23, r0\n\t"
"add r1, %0, #0\n\t"
- "vstmia r1!, {s0, s1, s2, s3}\n\t"
+ "vstmia r1!, {s20, s21, s22, s23}\n\t"
"mov r0, %1\n\t"
"sub r1, r1, %0\n\t"
"mov r3, r1\n\t"
@@ -1044,7 +1044,8 @@
:
: "r" (data), "r" (format), "r"(&res)
: "r0", "r1", "r2", "r3", "r5", "r12", "r14", "memory",
- "s0", "s1", "s2", "s3", "s5", "s6", "s16", "s17",
+ "s0", "s1", "s2", "s3", "s5", "s6", "s16", "s17", "s18", "s19",
+ "s20", "s21", "s22", "s23", "s25", "s26",
"d10", "d30", "d31"
);
printf("data:\n");
|