about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-02-15 16:02:35 +0100
committerGitHub <noreply@github.com>2022-02-15 16:02:35 +0100
commite1baa3d5b959ae6c74b6e83292a5db33d4ebf7db (patch)
treef0911fa5e1b1110e7d426928d38e277ebb8f4d9d
parentcdfdcfcf184ae4c20026b7f6ece7563a3a2af0ba (diff)
parentc26d5b3f9cabb6d0aef42093c69213b542ae8dd8 (diff)
downloadrust-e1baa3d5b959ae6c74b6e83292a5db33d4ebf7db.tar.gz
rust-e1baa3d5b959ae6c74b6e83292a5db33d4ebf7db.zip
Rollup merge of #93949 - glaubitz:m68k-unwind, r=Mark-Simulacrum
Add basic platform support to library/{panic_}unwind for m68k

This PR adds basic platform support for m68k for library/{panic_}unwind for m68k.

Register information for UNWIND_DATA_REG has been extracted from LLVM.
-rw-r--r--library/panic_unwind/src/gcc.rs3
-rw-r--r--library/unwind/src/libunwind.rs3
2 files changed, 6 insertions, 0 deletions
diff --git a/library/panic_unwind/src/gcc.rs b/library/panic_unwind/src/gcc.rs
index 9d6ede73e3d..a0297b4b2f5 100644
--- a/library/panic_unwind/src/gcc.rs
+++ b/library/panic_unwind/src/gcc.rs
@@ -105,6 +105,9 @@ const UNWIND_DATA_REG: (i32, i32) = (0, 1); // RAX, RDX
 #[cfg(any(target_arch = "arm", target_arch = "aarch64"))]
 const UNWIND_DATA_REG: (i32, i32) = (0, 1); // R0, R1 / X0, X1
 
+#[cfg(target_arch = "m68k")]
+const UNWIND_DATA_REG: (i32, i32) = (0, 1); // D0, D1
+
 #[cfg(any(target_arch = "mips", target_arch = "mips64"))]
 const UNWIND_DATA_REG: (i32, i32) = (4, 5); // A0, A1
 
diff --git a/library/unwind/src/libunwind.rs b/library/unwind/src/libunwind.rs
index 5e15fe75a24..c8c5528b104 100644
--- a/library/unwind/src/libunwind.rs
+++ b/library/unwind/src/libunwind.rs
@@ -42,6 +42,9 @@ pub const unwinder_private_data_size: usize = 2;
 #[cfg(all(target_arch = "aarch64", target_pointer_width = "32"))]
 pub const unwinder_private_data_size: usize = 5;
 
+#[cfg(target_arch = "m68k")]
+pub const unwinder_private_data_size: usize = 2;
+
 #[cfg(target_arch = "mips")]
 pub const unwinder_private_data_size: usize = 2;