Commit | Line | Data |
---|---|---|
a441e504 WT |
1 | --- a/basis-library/mlton/platform.sig |
2 | +++ b/basis-library/mlton/platform.sig | |
3 | @@ -10,7 +10,7 @@ | |
4 | structure Arch: | |
5 | sig | |
6 | datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k | | |
7 | - MIPS | PowerPC | PowerPC64 | S390 | Sparc | X86 | |
8 | + MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86 | |
9 | ||
10 | val fromString: string -> t option | |
11 | val host: t | |
12 | --- a/basis-library/mlton/platform.sml | |
13 | +++ b/basis-library/mlton/platform.sml | |
14 | @@ -25,6 +25,7 @@ | |
15 | (IA64, "IA64"), | |
16 | (m68k, "m68k"), | |
17 | (MIPS, "MIPS"), | |
18 | + (MIPS64, "MIPS64"), | |
19 | (PowerPC, "PowerPC"), | |
20 | (PowerPC64, "PowerPC64"), | |
21 | (S390, "S390"), | |
22 | --- a/basis-library/primitive/prim-mlton.sml | |
23 | +++ b/basis-library/primitive/prim-mlton.sml | |
24 | @@ -154,6 +154,7 @@ | |
25 | | IA64 | |
26 | | m68k | |
27 | | MIPS | |
28 | + | MIPS64 | |
29 | | PowerPC | |
30 | | PowerPC64 | |
31 | | S390 | |
32 | @@ -170,6 +171,7 @@ | |
33 | | "ia64" => IA64 | |
34 | | "m68k" => m68k | |
35 | | "mips" => MIPS | |
36 | + | "mips64" => MIPS64 | |
37 | | "powerpc" => PowerPC | |
38 | | "powerpc64" => PowerPC64 | |
39 | | "s390" => S390 | |
40 | --- a/bin/platform | |
41 | +++ b/bin/platform | |
42 | @@ -108,6 +108,9 @@ | |
43 | m68k*) | |
44 | HOST_ARCH=m68k | |
45 | ;; | |
46 | +mips64*) | |
47 | + HOST_ARCH=mips64 | |
48 | +;; | |
49 | mips*) | |
50 | # big-endian and little-endian detect via headers | |
51 | HOST_ARCH=mips | |
52 | --- a/lib/stubs/mlton-stubs/mlton.sml | |
53 | +++ b/lib/stubs/mlton-stubs/mlton.sml | |
54 | @@ -159,7 +159,7 @@ | |
55 | structure Arch = | |
56 | struct | |
57 | datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k | | |
58 | - MIPS | PowerPC | PowerPC64 | S390 | Sparc | X86 | |
59 | + MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86 | |
60 | ||
61 | val all = [(Alpha, "Alpha"), | |
62 | (AMD64, "AMD64"), | |
63 | @@ -169,6 +169,7 @@ | |
64 | (IA64, "IA64"), | |
65 | (m68k, "m68k"), | |
66 | (MIPS, "MIPS"), | |
67 | + (MIPS64, "MIPS64"), | |
68 | (PowerPC, "PowerPC"), | |
69 | (PowerPC64, "PowerPC64"), | |
70 | (S390, "S390"), | |
71 | --- a/lib/stubs/mlton-stubs/platform.sig | |
72 | +++ b/lib/stubs/mlton-stubs/platform.sig | |
73 | @@ -10,7 +10,7 @@ | |
74 | structure Arch: | |
75 | sig | |
76 | datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k | | |
77 | - MIPS | PowerPC | PowerPC64 | S390 | Sparc | X86 | |
78 | + MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86 | |
79 | ||
80 | val fromString: string -> t option | |
81 | val host: t | |
82 | --- a/mlton/main/main.fun | |
83 | +++ b/mlton/main/main.fun | |
84 | @@ -192,6 +192,7 @@ | |
85 | | HPPA => true | |
86 | | IA64 => true | |
87 | | MIPS => true | |
88 | + | MIPS64 => true | |
89 | | Sparc => true | |
90 | | S390 => true | |
91 | | _ => false | |
92 | --- a/runtime/cenv.h | |
93 | +++ b/runtime/cenv.h | |
94 | @@ -101,6 +101,8 @@ | |
95 | #include "platform/ia64.h" | |
96 | #elif (defined (__m68k__)) | |
97 | #include "platform/m68k.h" | |
98 | +#elif (defined (__mips64)) | |
99 | +#include "platform/mips64.h" | |
100 | #elif (defined (__mips__)) | |
101 | #include "platform/mips.h" | |
102 | #elif (defined (__powerpc64__)) | |
103 | --- /dev/null | |
104 | +++ b/runtime/platform/mips64.h | |
105 | @@ -0,0 +1 @@ | |
106 | +#define MLton_Platform_Arch_host "mips64" | |
107 | --- a/runtime/platform/linux.c | |
108 | +++ b/runtime/platform/linux.c | |
109 | @@ -37,7 +37,7 @@ | |
110 | #else | |
111 | GC_handleSigProf ((code_pointer) scp->si_regs.pc); | |
112 | #endif | |
113 | -#elif (defined (__mips__)) | |
114 | +#elif (defined (__mips64)) || (defined (__mips__)) | |
115 | ucontext_t* ucp = (ucontext_t*)context; | |
116 | #ifdef __UCLIBC__ | |
117 | GC_handleSigProf ((code_pointer) ucp->uc_mcontext.gpregs[CTX_EPC]); |