Changeset 4f843ded in mainline
- Timestamp:
- 2012-11-25T18:46:58Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 48a209a
- Parents:
- 37bb3e1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/src/fpu_context.c
r37bb3e1 r4f843ded 86 86 asm volatile ( 87 87 "vmrs r1, fpexc\n" 88 "stmia %0!, {r1}\n" 89 "vmrs r1, fpscr\n" 90 "stmia %0!, {r1}\n" 88 "vmrs r2, fpscr\n" 89 "stmia %0!, {r1, r2}\n" 91 90 "vstmia %0!, {s0-s31}\n" 92 ::"r" (ctx): "r1"," memory"91 ::"r" (ctx): "r1","r2","memory" 93 92 ); 94 93 } … … 101 100 { 102 101 asm volatile ( 103 "ldmia %0!, {r1 }\n"102 "ldmia %0!, {r1, r2}\n" 104 103 "vmsr fpexc, r1\n" 105 "ldmia %0!, {r1}\n" 106 "vmsr fpscr, r1\n" 104 "vmsr fpscr, r2\n" 107 105 "vldmia %0!, {s0-s31}\n" 108 ::"r" (ctx): "r1" 106 ::"r" (ctx): "r1","r2" 109 107 ); 110 108 } … … 118 116 asm volatile ( 119 117 "vmrs r1, fpexc\n" 120 "stmia %0!, {r1}\n" 121 "vmrs r1, fpscr\n" 122 "stmia %0!, {r1}\n" 118 "vmrs r2, fpscr\n" 119 "stmia %0!, {r1, r2}\n" 123 120 "vstmia %0!, {d0-d15}\n" 124 ::"r" (ctx): "r1"," memory"121 ::"r" (ctx): "r1","r2","memory" 125 122 ); 126 123 } … … 133 130 { 134 131 asm volatile ( 135 "ldmia %0!, {r1 }\n"132 "ldmia %0!, {r1, r2}\n" 136 133 "vmsr fpexc, r1\n" 137 "ldmia %0!, {r1}\n" 138 "vmsr fpscr, r1\n" 134 "vmsr fpscr, r2\n" 139 135 "vldmia %0!, {d0-d15}\n" 140 ::"r" (ctx): "r1" 136 ::"r" (ctx): "r1","r2" 141 137 ); 142 138 } … … 259 255 void fpu_context_save(fpu_context_t *ctx) 260 256 { 257 const uint32_t fpexc = fpexc_read(); 258 259 if (fpexc & FPEXC_EX_FLAG) { 260 printf("EX FPU flag is on, things will fail\n"); 261 //TODO implement common subarch context saving 262 } 261 263 if (save_context) 262 264 save_context(ctx);
Note:
See TracChangeset
for help on using the changeset viewer.