From 6b414663dd955782dc638c4857ab67e29589c944 Mon Sep 17 00:00:00 2001
From: Ben Gamari <bgamari.foss@gmail.com>
Date: Sat, 28 Jan 2012 16:55:04 -0500
Subject: [PATCH] Fix register clobber list in StgRun for ARM
The ARM implementation of StgRun does not claim that it clobbers r7-r12. As a
result, the compiler will sometimes put the returned RegTable in one of these
registers, resulting in an invalid RegTable to be returned. Hilarity ensues.
Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>
---
rts/StgCRun.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/rts/StgCRun.c b/rts/StgCRun.c
index c302efb..8fcb550 100644
|
a
|
b
|
|
| 672 | 672 | "ldmfd sp!, {r4-r10, fp, ip, lr}\n\t" |
| 673 | 673 | : "=r" (r) |
| 674 | 674 | : "r" (f), "r" (basereg), "i" (RESERVED_C_STACK_BYTES) |
| 675 | | : |
| | 675 | : "%r4", "%r5", "%r6", "%r8", "%r9", "%r10", "%fp", "%ip", "%lr" |
| 676 | 676 | ); |
| 677 | 677 | return r; |
| 678 | 678 | } |