about summary refs log tree commit diff
path: root/src/libstd/sys/windows/backtrace
diff options
context:
space:
mode:
authorJordan Rhee <jordanrh@microsoft.com>2018-06-26 09:44:19 -0700
committerJordan Rhee <jordanrh@microsoft.com>2018-09-04 14:54:37 -0700
commitf7fa67cea13efdacfc82389f6f592bb4bda86a2e (patch)
tree733f114a89b99f464534a1cfdc76fda72f512ef7 /src/libstd/sys/windows/backtrace
parent1c2e17f4e3a2070a7f703f51e29c1c388ef703b6 (diff)
downloadrust-f7fa67cea13efdacfc82389f6f592bb4bda86a2e.tar.gz
rust-f7fa67cea13efdacfc82389f6f592bb4bda86a2e.zip
Add target thumbv7a-pc-windows-msvc
Diffstat (limited to 'src/libstd/sys/windows/backtrace')
-rw-r--r--src/libstd/sys/windows/backtrace/mod.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libstd/sys/windows/backtrace/mod.rs b/src/libstd/sys/windows/backtrace/mod.rs
index 70de4a6f2b6..cfa9e7b7c25 100644
--- a/src/libstd/sys/windows/backtrace/mod.rs
+++ b/src/libstd/sys/windows/backtrace/mod.rs
@@ -248,6 +248,17 @@ impl StackFrame for c::STACKFRAME_EX {
         c::IMAGE_FILE_MACHINE_AMD64
     }
 
+    #[cfg(target_arch = "arm")]
+    fn init(&mut self, ctx: &c::CONTEXT) -> c::DWORD {
+        self.AddrPC.Offset = ctx.Pc as u64;
+        self.AddrPC.Mode = c::ADDRESS_MODE::AddrModeFlat;
+        self.AddrStack.Offset = ctx.Sp as u64;
+        self.AddrStack.Mode = c::ADDRESS_MODE::AddrModeFlat;
+        self.AddrFrame.Offset = ctx.R11 as u64;
+        self.AddrFrame.Mode = c::ADDRESS_MODE::AddrModeFlat;
+        c::IMAGE_FILE_MACHINE_ARMNT
+    }
+
     #[cfg(target_arch = "aarch64")]
     fn init(&mut self, ctx: &c::CONTEXT) -> c::DWORD {
         self.AddrPC.Offset = ctx.Pc as u64;
@@ -291,6 +302,17 @@ impl StackFrame for c::STACKFRAME64 {
         c::IMAGE_FILE_MACHINE_AMD64
     }
 
+    #[cfg(target_arch = "arm")]
+    fn init(&mut self, ctx: &c::CONTEXT) -> c::DWORD {
+        self.AddrPC.Offset = ctx.Pc as u64;
+        self.AddrPC.Mode = c::ADDRESS_MODE::AddrModeFlat;
+        self.AddrStack.Offset = ctx.Sp as u64;
+        self.AddrStack.Mode = c::ADDRESS_MODE::AddrModeFlat;
+        self.AddrFrame.Offset = ctx.R11 as u64;
+        self.AddrFrame.Mode = c::ADDRESS_MODE::AddrModeFlat;
+        c::IMAGE_FILE_MACHINE_ARMNT
+    }
+
     #[cfg(target_arch = "aarch64")]
     fn init(&mut self, ctx: &c::CONTEXT) -> c::DWORD {
         self.AddrPC.Offset = ctx.Pc as u64;