mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-09 12:49:45 -05:00
49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
|
Patch sent upstream for review:
|
||
|
https://github.com/thepowersgang/mrustc/pull/276
|
||
|
|
||
|
diff --git a/src/trans/target.cpp b/src/trans/target.cpp
|
||
|
index 420a2870..4d5eefb3 100644
|
||
|
--- a/src/trans/target.cpp
|
||
|
+++ b/src/trans/target.cpp
|
||
|
@@ -65,6 +65,13 @@ const TargetArch ARCH_POWERPC64LE = {
|
||
|
{ /*atomic(u8)=*/true, true, true, true, true },
|
||
|
TargetArch::Alignments(2, 4, 8, 16, 4, 8, 8)
|
||
|
};
|
||
|
+// This is a guess
|
||
|
+const TargetArch ARCH_RISCV64 = {
|
||
|
+ "riscv64",
|
||
|
+ 64, false,
|
||
|
+ { /*atomic(u8)=*/true, true, true, true, true },
|
||
|
+ TargetArch::Alignments(2, 4, 8, 16, 4, 8, 8)
|
||
|
+};
|
||
|
TargetSpec g_target;
|
||
|
|
||
|
|
||
|
@@ -455,6 +462,13 @@ namespace
|
||
|
ARCH_POWERPC64LE
|
||
|
};
|
||
|
}
|
||
|
+ else if(target_name == "riscv64-unknown-linux-gnu")
|
||
|
+ {
|
||
|
+ return TargetSpec {
|
||
|
+ "unix", "linux", "gnu", {CodegenMode::Gnu11, false, "riscv64-unknown-linux-gnu", BACKEND_C_OPTS_GNU},
|
||
|
+ ARCH_RISCV64
|
||
|
+ };
|
||
|
+ }
|
||
|
else if(target_name == "i586-pc-windows-gnu")
|
||
|
{
|
||
|
return TargetSpec {
|
||
|
diff --git a/tools/common/target_detect.h b/tools/common/target_detect.h
|
||
|
index a052da6b..42fea91a 100644
|
||
|
--- a/tools/common/target_detect.h
|
||
|
+++ b/tools/common/target_detect.h
|
||
|
@@ -34,6 +34,8 @@
|
||
|
# define DEFAULT_TARGET_NAME "powerpc64-unknown-linux-gnu"
|
||
|
# elif defined(__powerpc64__) && defined(__LITTLE_ENDIAN__)
|
||
|
# define DEFAULT_TARGET_NAME "powerpc64le-unknown-linux-gnu"
|
||
|
+# elif defined(__riscv) && __riscv_xlen == 64
|
||
|
+# define DEFAULT_TARGET_NAME "riscv64-unknown-linux-gnu"
|
||
|
# else
|
||
|
# warning "Unable to detect a suitable default target (linux-gnu)"
|
||
|
# endif
|