diff options
author | Karel Gardas <karel.gardas@centrum.cz> | 2011-07-06 21:05:13 +0200 |
---|---|---|
committer | Manuel M T Chakravarty <chak@cse.unsw.edu.au> | 2011-08-10 22:03:41 +1000 |
commit | 454b34cb3b67dec21f023339c4d53d734af7605d (patch) | |
tree | 4983465d131fa3122ea364edc7e928b05b84dddf /rts/StgCRun.c | |
parent | 226541c418258e486399a6ebe3814bdac99af461 (diff) | |
download | haskell-454b34cb3b67dec21f023339c4d53d734af7605d.tar.gz |
add support for STG floating-point regs using VFPv3
This patch adds mapping for STG floating point registers
using ARM VFPv3. Since I'm using just d8-d11 also processors
with just VFPv3-D16 implemented should work (e.g. NVidia Tegra2,
Marvell Dove)
Diffstat (limited to 'rts/StgCRun.c')
-rw-r--r-- | rts/StgCRun.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/rts/StgCRun.c b/rts/StgCRun.c index 6182775427..58db832a17 100644 --- a/rts/StgCRun.c +++ b/rts/StgCRun.c @@ -997,6 +997,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) { * save callee-saves registers on behalf of the STG code. */ "stmfd sp!, {r4-r10, fp, ip, lr}\n\t" + "vstmdb sp!, {d8-d11}\n\t" /* * allocate some space for Stg machine's temporary storage. * Note: RESERVER_C_STACK_BYTES has to be a round number here or @@ -1027,6 +1028,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) { /* * restore callee-saves registers. */ + "vldmia sp!, {d8-d11}\n\t" "ldmfd sp!, {r4-r10, fp, ip, lr}\n\t" : "=r" (r) : "r" (f), "r" (basereg), "i" (RESERVED_C_STACK_BYTES) |