|
From: <sv...@va...> - 2005-11-19 02:03:00
|
Author: sewardj
Date: 2005-11-19 02:02:57 +0000 (Sat, 19 Nov 2005)
New Revision: 5204
Log:
Counterpart to r5202: restore previous assembler state with .previous
Modified:
trunk/coregrind/m_main.c
trunk/coregrind/m_signals.c
trunk/coregrind/m_syscall.c
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_main.c 2005-11-19 01:32:17 UTC (rev 5203)
+++ trunk/coregrind/m_main.c 2005-11-19 02:02:57 UTC (rev 5204)
@@ -2801,6 +2801,7 @@
"\tpushl %eax\n"
"\tcall _start_in_C\n"
"\thlt\n"
+ ".previous\n"
);
#elif defined(VGP_amd64_linux)
asm("\n"
@@ -2818,6 +2819,7 @@
/* call _start_in_C, passing it the startup %rsp */
"\tcall _start_in_C\n"
"\thlt\n"
+ ".previous\n"
);
#elif defined(VGP_ppc32_linux)
asm("\n"
@@ -2843,6 +2845,7 @@
"\tmr 1,16\n"
"\tbl _start_in_C\n"
"\ttrap\n"
+ ".previous\n"
);
#else
#error "_start: needs implementation on this platform"
Modified: trunk/coregrind/m_signals.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_signals.c 2005-11-19 01:32:17 UTC (rev 5203)
+++ trunk/coregrind/m_signals.c 2005-11-19 02:02:57 UTC (rev 5204)
@@ -400,19 +400,22 @@
".text\n" \
"my_sigreturn:\n" \
" movl $" #name ", %eax\n" \
- " int $0x80\n"
+ " int $0x80\n" \
+ ".previous\n"
#elif defined(VGP_amd64_linux)
# define _MYSIG(name) \
".text\n" \
"my_sigreturn:\n" \
" movq $" #name ", %rax\n" \
- " syscall\n"
+ " syscall\n" \
+ ".previous\n"
#elif defined(VGP_ppc32_linux)
# define _MYSIG(name) \
".text\n" \
"my_sigreturn:\n" \
" li 0, " #name "\n" \
- " sc\n"
+ " sc\n" \
+ ".previous\n"
#else
# error Unknown platform
#endif
Modified: trunk/coregrind/m_syscall.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syscall.c 2005-11-19 01:32:17 UTC (rev 5203)
+++ trunk/coregrind/m_syscall.c 2005-11-19 02:02:57 UTC (rev 5204)
@@ -130,6 +130,7 @@
" popl %edi\n"
" popl %esi\n"
" ret\n"
+".previous\n"
);
#elif defined(VGP_amd64_linux)
/* Incoming args (syscall number + up to 6 args) come in %rdi, %rsi,
@@ -163,6 +164,7 @@
" movq 8(%rsp), %r9\n" /* last arg from stack */
" syscall\n"
" ret\n"
+".previous\n"
);
#elif defined(VGP_ppc32_linux)
/* Incoming args (syscall number + up to 6 args) come in %r0, %r3:%r8
@@ -194,6 +196,7 @@
" mfcr 4\n" /* %cr -> low word of return var =
*/
" rlwinm 4,4,4,31,31\n" /* rotate flag bit so to lsb, and mask i=
t */
" blr\n" /* and return =
*/
+".previous\n"
);
#else
# error Unknown platform
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-11-19 01:32:17 U=
TC (rev 5203)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-11-19 02:02:57 U=
TC (rev 5204)
@@ -95,6 +95,7 @@
" popq %rdi\n" // arg1 to correct arg reg
" ret\n" // jump to f
" ud2\n" // should never get here
+".previous\n"
);
=20
/*
@@ -171,6 +172,7 @@
=20
"1:\n" // PARENT or ERROR
" ret\n"
+".previous\n"
);
=20
#undef __NR_CLONE
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-11-19 01:32:17 U=
TC (rev 5203)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-11-19 02:02:57 U=
TC (rev 5204)
@@ -110,6 +110,7 @@
" mtcr 0\n\t" // CAB: Need this?
" bctr\n\t" // jump to dst
" trap\n" // should never get here
+".previous\n"
);
=20
=20
@@ -206,6 +207,7 @@
" lwz 31,28(1)\n"
" addi 1,1,32\n"
" blr\n"
+".previous\n"
);
=20
#undef __NR_CLONE
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-11-19 01:32:17 UTC=
(rev 5203)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-11-19 02:02:57 UTC=
(rev 5204)
@@ -95,6 +95,7 @@
" movl $0, %ebp\n"
" ret\n" // jump to f
" ud2\n" // should never get here
+".previous\n"
);
=20
=20
@@ -178,6 +179,7 @@
" pop %edi\n"
" pop %ebx\n"
" ret\n"
+".previous\n"
);
=20
#undef FSZ
|