nitesh.jain created this revision.
nitesh.jain added reviewers: clayborg, labath.
nitesh.jain added subscribers: jaydeep, bhushan, slthakur, lldb-commits.

This patch will fix TestEhFrameUnwind.py failure for MIPS

https://reviews.llvm.org/D24122

Files:
  packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c

Index: packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c
===================================================================
--- packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c
+++ packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c
@@ -1,4 +1,6 @@
 void func() {
+
+#ifndef __mips__
        __asm__ (
                "pushq $0x10;"
                ".cfi_def_cfa_offset 16;"
@@ -10,11 +12,35 @@
                "movq $0x48, %rax;"
                "popq %rax;"
        );
-
+#elif __mips64
+   __asm__ (
+    "daddiu $sp,$sp,-16;"
+    ".cfi_def_cfa_offset 16;"
+    "sd $ra,8($sp);"
+    ".cfi_offset 31, -8;"
+    "daddiu $ra,$zero,0;"
+    "ld $ra,8($sp);"
+    "daddiu $sp, $sp,16;"
+    ".cfi_restore 31;"
+    ".cfi_def_cfa_offset 0;"
+   );
+#else
+   // For MIPS32
+   __asm__ (
+    "addiu $sp,$sp,-8;"
+    ".cfi_def_cfa_offset 8;"
+    "sw $ra,4($sp);"
+    ".cfi_offset 31, -4;"
+    "addiu $ra,$zero,0;"
+    "lw $ra,4($sp);"
+    "addiu $sp,$sp,8;"
+    ".cfi_restore 31;"
+    ".cfi_def_cfa_offset 0;"
+   );
+#endif
 }
 
-
 int main(int argc, char const *argv[])
 {
        func();
-}
\ No newline at end of file
+}


Index: packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c
===================================================================
--- packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c
+++ packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c
@@ -1,4 +1,6 @@
 void func() {
+
+#ifndef __mips__
 	__asm__ (
 		"pushq $0x10;"
 		".cfi_def_cfa_offset 16;"
@@ -10,11 +12,35 @@
 		"movq $0x48, %rax;"
 		"popq %rax;"
 	);
-
+#elif __mips64
+   __asm__ (
+    "daddiu $sp,$sp,-16;"
+    ".cfi_def_cfa_offset 16;"
+    "sd $ra,8($sp);"
+    ".cfi_offset 31, -8;"
+    "daddiu $ra,$zero,0;"
+    "ld $ra,8($sp);"
+    "daddiu $sp, $sp,16;"
+    ".cfi_restore 31;"
+    ".cfi_def_cfa_offset 0;"
+   );
+#else
+   // For MIPS32
+   __asm__ (
+    "addiu $sp,$sp,-8;"
+    ".cfi_def_cfa_offset 8;"
+    "sw $ra,4($sp);"
+    ".cfi_offset 31, -4;"
+    "addiu $ra,$zero,0;"
+    "lw $ra,4($sp);"
+    "addiu $sp,$sp,8;"
+    ".cfi_restore 31;"
+    ".cfi_def_cfa_offset 0;"
+   );
+#endif
 }
 
-
 int main(int argc, char const *argv[])
 {
 	func();
-}
\ No newline at end of file
+}
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to