|
From: <sv...@va...> - 2005-11-18 23:50:50
|
Author: sewardj
Date: 2005-11-18 23:50:43 +0000 (Fri, 18 Nov 2005)
New Revision: 5202
Log:
Hmm. Perhaps all those top-level pieces of assembly weren't such a
clever idea. There's no reason to assume the assembler is in
.text-mode when it encounters them, and as gcc 2.96 rudely
demonstrates, sometimes it isn't. So put .text in front of all of
them.
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-18 22:09:58 UTC (rev 5201)
+++ trunk/coregrind/m_main.c 2005-11-18 23:50:43 UTC (rev 5202)
@@ -2785,6 +2785,7 @@
the new stack. */
#if defined(VGP_x86_linux)
asm("\n"
+ ".text\n"
"\t.globl _start\n"
"\t.type _start,@function\n"
"_start:\n"
@@ -2803,6 +2804,7 @@
);
#elif defined(VGP_amd64_linux)
asm("\n"
+ ".text\n"
"\t.globl _start\n"
"\t.type _start,@function\n"
"_start:\n"
@@ -2819,6 +2821,7 @@
);
#elif defined(VGP_ppc32_linux)
asm("\n"
+ ".text\n"
"\t.globl _start\n"
"\t.type _start,@function\n"
"_start:\n"
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-18 22:09:58 UTC (rev 5201)
+++ trunk/coregrind/m_signals.c 2005-11-18 23:50:43 UTC (rev 5202)
@@ -397,16 +397,19 @@
=20
#if defined(VGP_x86_linux)
# define _MYSIG(name) \
+ ".text\n" \
"my_sigreturn:\n" \
" movl $" #name ", %eax\n" \
" int $0x80\n"
#elif defined(VGP_amd64_linux)
# define _MYSIG(name) \
+ ".text\n" \
"my_sigreturn:\n" \
" movq $" #name ", %rax\n" \
" syscall\n"
#elif defined(VGP_ppc32_linux)
# define _MYSIG(name) \
+ ".text\n" \
"my_sigreturn:\n" \
" li 0, " #name "\n" \
" sc\n"
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-18 22:09:58 UTC (rev 5201)
+++ trunk/coregrind/m_syscall.c 2005-11-18 23:50:43 UTC (rev 5202)
@@ -111,6 +111,7 @@
UWord a4, UWord a5, UWord a6
);
asm(
+".text\n"
"do_syscall_WRK:\n"
" push %esi\n"
" push %edi\n"
@@ -149,6 +150,7 @@
UWord a4, UWord a5, UWord a6
);
asm(
+".text\n"
"do_syscall_WRK:\n"
/* Convert function calling convention --> syscall calling
convention */
@@ -179,6 +181,7 @@
UWord a4, UWord a5, UWord a6
);
asm(
+".text\n"
"do_syscall_WRK:\n"
" mr 0,3\n"
" mr 3,4\n"
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-18 22:09:58 U=
TC (rev 5201)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-11-18 23:50:43 U=
TC (rev 5202)
@@ -70,6 +70,7 @@
// %rdx =3D=3D f
// %rcx =3D=3D arg1
asm(
+".text\n"
".globl vgModuleLocal_call_on_new_stack_0_1\n"
"vgModuleLocal_call_on_new_stack_0_1:\n"
" movq %rdi, %rsp\n" // set stack
@@ -134,7 +135,7 @@
Long* parent_tid,=20
vki_modify_ldt_t * );
asm(
-"\n"
+".text\n"
"do_syscall_clone_amd64_linux:\n"
// set up child stack, temporarily preserving fn and arg
" subq $16, %rsi\n" // make space on stack
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-18 22:09:58 U=
TC (rev 5201)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-11-18 23:50:43 U=
TC (rev 5202)
@@ -70,6 +70,7 @@
// r5 =3D f
// r6 =3D arg1
asm(
+".text\n"
".globl vgModuleLocal_call_on_new_stack_0_1\n"
"vgModuleLocal_call_on_new_stack_0_1:\n"
" mr %r1,%r3\n\t" // stack to %sp
@@ -151,7 +152,7 @@
Int* parent_tid,=20
vki_modify_ldt_t * );
asm(
-"\n"
+".text\n"
"do_syscall_clone_ppc32_linux:\n"
" stwu 1,-32(1)\n"
" stw 29,20(1)\n"
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-18 22:09:58 UTC=
(rev 5201)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-11-18 23:50:43 UTC=
(rev 5202)
@@ -78,6 +78,7 @@
// 12(%esp) =3D=3D f
// 16(%esp) =3D=3D arg1
asm(
+".text\n"
".globl vgModuleLocal_call_on_new_stack_0_1\n"
"vgModuleLocal_call_on_new_stack_0_1:\n"
" movl %esp, %esi\n" // remember old stack pointer
@@ -136,7 +137,7 @@
Int* parent_tid,=20
vki_modify_ldt_t * );
asm(
-"\n"
+".text\n"
"do_syscall_clone_x86_linux:\n"
" push %ebx\n"
" push %edi\n"
|