diff options
Diffstat (limited to 'src/host/buildvm_asm.c')
-rw-r--r-- | src/host/buildvm_asm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/host/buildvm_asm.c b/src/host/buildvm_asm.c index 9b7ae53a..9b119425 100644 --- a/src/host/buildvm_asm.c +++ b/src/host/buildvm_asm.c | |||
@@ -261,11 +261,20 @@ void emit_asm(BuildCtx *ctx) | |||
261 | 261 | ||
262 | #if LJ_TARGET_ARM && defined(__GNUC__) && !LJ_NO_UNWIND | 262 | #if LJ_TARGET_ARM && defined(__GNUC__) && !LJ_NO_UNWIND |
263 | /* This should really be moved into buildvm_arm.dasc. */ | 263 | /* This should really be moved into buildvm_arm.dasc. */ |
264 | #if LJ_ARCH_HASFPU | ||
265 | fprintf(ctx->fp, | ||
266 | ".fnstart\n" | ||
267 | ".save {r5, r6, r7, r8, r9, r10, r11, lr}\n" | ||
268 | ".vsave {d8-d15}\n" | ||
269 | ".save {r4}\n" | ||
270 | ".pad #28\n"); | ||
271 | #else | ||
264 | fprintf(ctx->fp, | 272 | fprintf(ctx->fp, |
265 | ".fnstart\n" | 273 | ".fnstart\n" |
266 | ".save {r4, r5, r6, r7, r8, r9, r10, r11, lr}\n" | 274 | ".save {r4, r5, r6, r7, r8, r9, r10, r11, lr}\n" |
267 | ".pad #28\n"); | 275 | ".pad #28\n"); |
268 | #endif | 276 | #endif |
277 | #endif | ||
269 | #if LJ_TARGET_MIPS | 278 | #if LJ_TARGET_MIPS |
270 | fprintf(ctx->fp, ".set nomips16\n.abicalls\n.set noreorder\n.set nomacro\n"); | 279 | fprintf(ctx->fp, ".set nomips16\n.abicalls\n.set noreorder\n.set nomacro\n"); |
271 | #endif | 280 | #endif |