|
|
9f48f9c |
diff --git a/runtime/basis/Word/Word.c b/runtime/basis/Word/Word.c
|
|
|
9f48f9c |
index 39f6d05..651c426 100644
|
|
|
9f48f9c |
--- a/runtime/basis/Word/Word.c
|
|
|
9f48f9c |
+++ b/runtime/basis/Word/Word.c
|
|
|
9f48f9c |
@@ -24,7 +24,7 @@
|
|
|
9f48f9c |
* implements / and %.
|
|
|
9f48f9c |
*/
|
|
|
9f48f9c |
|
|
|
9f48f9c |
-#if ! (defined (__amd64__) || defined (__hppa__) || defined (__i386__) || defined(__ia64__)|| defined (__ppc__) || defined (__powerpc__) || defined (__sparc__))
|
|
|
9f48f9c |
+#if ! (defined (__amd64__) || defined (__hppa__) || defined (__i386__) || defined(__ia64__)|| defined (__ppc__) || defined (__powerpc__) || defined (__sparc__) || defined (__arm__))
|
|
|
9f48f9c |
#error check that C {/,%} correctly implement {quot,rem} from the basis library
|
|
|
9f48f9c |
#endif
|
|
|
9f48f9c |
|
|
|
9f48f9c |
diff --git a/runtime/platform/linux.c b/runtime/platform/linux.c
|
|
|
9f48f9c |
index 3177ed1..fecf168 100644
|
|
|
9f48f9c |
--- a/runtime/platform/linux.c
|
|
|
9f48f9c |
+++ b/runtime/platform/linux.c
|
|
|
9f48f9c |
@@ -17,7 +17,6 @@
|
|
|
9f48f9c |
|
|
|
9f48f9c |
/* potentially correct for other archs:
|
|
|
9f48f9c |
* alpha: ucp->m_context.sc_pc
|
|
|
9f48f9c |
- * arm: ucp->m_context.ctx.arm_pc
|
|
|
9f48f9c |
* ia64: ucp->m_context.sc_ip & ~0x3UL
|
|
|
9f48f9c |
* mips: ucp->m_context.sc_pc
|
|
|
9f48f9c |
* s390: ucp->m_context.sregs->regs.psw.addr
|
|
|
9f48f9c |
@@ -48,6 +47,9 @@ static void catcher (__attribute__ ((unused)) int sig,
|
|
|
9f48f9c |
#elif (defined (__i386__))
|
|
|
9f48f9c |
ucontext_t* ucp = (ucontext_t*)mystery;
|
|
|
9f48f9c |
GC_handleSigProf ((code_pointer) ucp->uc_mcontext.gregs[EIP]);
|
|
|
9f48f9c |
+#elif (defined (__arm__))
|
|
|
9f48f9c |
+ ucontext_t* ucp = (ucontext_t*)mystery;
|
|
|
9f48f9c |
+ GC_handleSigProf ((code_pointer) ucp->uc_mcontext.arm_pc);
|
|
|
9f48f9c |
#else
|
|
|
9f48f9c |
#error Profiling handler is missing for this architecture
|
|
|
9f48f9c |
#endif
|