aboutsummaryrefslogtreecommitdiff
path: root/pk
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@eecs.berkeley.edu>2015-11-18 11:17:25 -0800
committerAndrew Waterman <waterman@eecs.berkeley.edu>2015-11-18 11:17:25 -0800
commite66623316c01ea4cd693120faecffe61a14df824 (patch)
tree53d49428d02fda92d6035542905cb73458800066 /pk
parente59b354ab42c18239e7e88939076bb7841aa205c (diff)
parent6300bfbbf81bae92a89b085454898313703acd99 (diff)
downloadpk-e66623316c01ea4cd693120faecffe61a14df824.zip
pk-e66623316c01ea4cd693120faecffe61a14df824.tar.gz
pk-e66623316c01ea4cd693120faecffe61a14df824.tar.bz2
Merge pull request #15 from darius-bluespec/fix-disable-fp-emulation
Fix --disable-fp-emulation.
Diffstat (limited to 'pk')
-rw-r--r--pk/mtrap.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/pk/mtrap.c b/pk/mtrap.c
index d5aafd6..88a8a46 100644
--- a/pk/mtrap.c
+++ b/pk/mtrap.c
@@ -9,7 +9,11 @@ uintptr_t illegal_insn_trap(uintptr_t mcause, uintptr_t* regs)
asm (".pushsection .rodata\n"
"illegal_insn_trap_table:\n"
" .word truly_illegal_insn\n"
+#ifdef PK_ENABLE_FP_EMULATION
" .word emulate_float_load\n"
+#else
+ " .word truly_illegal_insn\n"
+#endif
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
@@ -17,26 +21,42 @@ uintptr_t illegal_insn_trap(uintptr_t mcause, uintptr_t* regs)
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
+#ifdef PK_ENABLE_FP_EMULATION
" .word emulate_float_store\n"
+#else
+ " .word truly_illegal_insn\n"
+#endif
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word emulate_mul_div\n"
" .word truly_illegal_insn\n"
" .word emulate_mul_div32\n"
" .word truly_illegal_insn\n"
+#ifdef PK_ENABLE_FP_EMULATION
" .word emulate_fmadd\n"
" .word emulate_fmsub\n"
" .word emulate_fnmsub\n"
" .word emulate_fnmadd\n"
" .word emulate_fp\n"
+#else
+ " .word truly_illegal_insn\n"
+ " .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
+#endif
+ " .word truly_illegal_insn\n"
+ " .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
+ " .word truly_illegal_insn\n"
+#ifdef PK_ENABLE_FP_EMULATION
" .word emulate_system\n"
+#else
+ " .word truly_illegal_insn\n"
+#endif
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"
" .word truly_illegal_insn\n"