PERFORCE change 130199 for review

John Birrell jb at FreeBSD.org
Tue Dec 4 13:17:42 PST 2007


http://perforce.freebsd.org/chv.cgi?CH=130199

Change 130199 by jb at jb_freebsd1 on 2007/12/04 21:17:12

	gas 2.18 is a bit fussy about operand sizes.
	
	This change might not be correct given what bde@ said in:
	http://lists.freebsd.org/pipermail/freebsd-emulation/2007-January/003050.html
	
	For now I just want to be able to build and test on amd64 with the
	latest binutils.

Affected files ...

.. //depot/projects/binutils/src/sys/amd64/amd64/cpu_switch.S#3 edit
.. //depot/projects/binutils/src/sys/amd64/ia32/ia32_signal.c#2 edit
.. //depot/projects/binutils/src/sys/amd64/ia32/ia32_sigtramp.S#2 edit
.. //depot/projects/binutils/src/sys/amd64/include/cpufunc.h#2 edit
.. //depot/projects/binutils/src/sys/amd64/linux32/linux32_locore.s#3 edit
.. //depot/projects/binutils/src/sys/amd64/linux32/linux32_sysvec.c#3 edit

Differences ...

==== //depot/projects/binutils/src/sys/amd64/amd64/cpu_switch.S#3 (text+ko) ====

@@ -110,7 +110,7 @@
 	jz	1f				/* no, skip over */
 
 	/* Save userland %gs */
-	movl	%gs,PCB_GS(%r8)
+	mov	%gs,PCB_GS(%r8)
 	movq	PCB_GS32P(%r8),%rax
 	movq	(%rax),%rax
 	movq	%rax,PCB_GS32SD(%r8)
@@ -220,7 +220,7 @@
 	movq	%rbx,(%rax)
 	movl	$MSR_GSBASE,%ecx
 	rdmsr
-	movl	PCB_GS(%r8),%gs
+	mov	PCB_GS(%r8),%gs
 	wrmsr
 
 1:

==== //depot/projects/binutils/src/sys/amd64/ia32/ia32_signal.c#2 (text+ko) ====

@@ -328,8 +328,8 @@
 	sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0;
 	sf.sf_uc.uc_mcontext.mc_gs = rgs();
 	sf.sf_uc.uc_mcontext.mc_fs = rfs();
-	__asm __volatile("movl %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es));
-	__asm __volatile("movl %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds));
+	__asm __volatile("mov %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es));
+	__asm __volatile("mov %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds));
 	sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi;
 	sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi;
 	sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp;
@@ -443,8 +443,8 @@
 	sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0;
 	sf.sf_uc.uc_mcontext.mc_gs = rgs();
 	sf.sf_uc.uc_mcontext.mc_fs = rfs();
-	__asm __volatile("movl %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es));
-	__asm __volatile("movl %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds));
+	__asm __volatile("mov %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es));
+	__asm __volatile("mov %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds));
 	sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi;
 	sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi;
 	sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp;

==== //depot/projects/binutils/src/sys/amd64/ia32/ia32_sigtramp.S#2 (text+ko) ====

@@ -45,8 +45,8 @@
 	calll	*IA32_SIGF_HANDLER(%esp)
 	leal	IA32_SIGF_UC(%esp),%eax	/* get ucontext */
 	pushl	%eax
-	movl	IA32_UC_ES(%eax),%es	/* restore %es */
-	movl	IA32_UC_DS(%eax),%ds	/* restore %ds */
+	mov	IA32_UC_ES(%eax),%es	/* restore %es */
+	mov	IA32_UC_DS(%eax),%ds	/* restore %ds */
 	movl	$SYS_sigreturn,%eax
 	pushl	%eax			/* junk to fake return addr. */
 	int	$0x80			/* enter kernel with args */
@@ -60,8 +60,8 @@
 	calll	*IA32_SIGF_HANDLER(%esp)
 	leal	IA32_SIGF_UC4(%esp),%eax/* get ucontext */
 	pushl	%eax
-	movl	IA32_UC4_ES(%eax),%es	/* restore %es */
-	movl	IA32_UC4_DS(%eax),%ds	/* restore %ds */
+	mov	IA32_UC4_ES(%eax),%es	/* restore %es */
+	mov	IA32_UC4_DS(%eax),%ds	/* restore %ds */
 	movl	$344,%eax		/* 4.x SYS_sigreturn */
 	pushl	%eax			/* junk to fake return addr. */
 	int	$0x80			/* enter kernel with args */

==== //depot/projects/binutils/src/sys/amd64/include/cpufunc.h#2 (text+ko) ====

@@ -482,7 +482,7 @@
 rfs(void)
 {
 	u_int sel;
-	__asm __volatile("movl %%fs,%0" : "=rm" (sel));
+	__asm __volatile("mov %%fs,%0" : "=rm" (sel));
 	return (sel);
 }
 
@@ -490,7 +490,7 @@
 rgs(void)
 {
 	u_int sel;
-	__asm __volatile("movl %%gs,%0" : "=rm" (sel));
+	__asm __volatile("mov %%gs,%0" : "=rm" (sel));
 	return (sel);
 }
 
@@ -544,7 +544,7 @@
 	 * being trashed happens to be the kernel gsbase at the time.
 	 */
 	gsbase = MSR_GSBASE;
-        __asm __volatile("pushfq; cli; rdmsr; movl %0,%%gs; wrmsr; popfq"
+        __asm __volatile("pushfq; cli; rdmsr; mov %0,%%gs; wrmsr; popfq"
             : : "rm" (sel), "c" (gsbase) : "eax", "edx");
 }
 #else
@@ -552,13 +552,13 @@
 static __inline void
 load_fs(u_int sel)
 {
-	__asm __volatile("movl %0,%%fs" : : "rm" (sel));
+	__asm __volatile("mov %0,%%fs" : : "rm" (sel));
 }
 
 static __inline void
 load_gs(u_int sel)
 {
-	__asm __volatile("movl %0,%%gs" : : "rm" (sel));
+	__asm __volatile("mov %0,%%gs" : : "rm" (sel));
 }
 #endif
 

==== //depot/projects/binutils/src/sys/amd64/linux32/linux32_locore.s#3 (text+ko) ====

@@ -11,8 +11,8 @@
 NON_GPROF_ENTRY(linux_sigcode)
 	call	*LINUX_SIGF_HANDLER(%esp)
 	leal	LINUX_SIGF_SC(%esp),%ebx	/* linux scp */
-	movl	LINUX_SC_ES(%ebx),%es
-	movl	LINUX_SC_DS(%ebx),%ds
+	mov	LINUX_SC_ES(%ebx),%es
+	mov	LINUX_SC_DS(%ebx),%ds
 	movl	%esp, %ebx			/* pass sigframe */
 	push	%eax				/* fake ret addr */
 	movl	$LINUX_SYS_linux_sigreturn,%eax	/* linux_sigreturn() */
@@ -23,8 +23,8 @@
 linux_rt_sigcode:
 	call	*LINUX_RT_SIGF_HANDLER(%esp)
 	leal	LINUX_RT_SIGF_UC(%esp),%ebx	/* linux ucp */
-	movl	LINUX_SC_ES(%ebx),%es
-	movl	LINUX_SC_DS(%ebx),%ds
+	mov	LINUX_SC_ES(%ebx),%es
+	mov	LINUX_SC_DS(%ebx),%ds
 	push	%eax				/* fake ret addr */
 	movl	$LINUX_SYS_linux_rt_sigreturn,%eax   /* linux_rt_sigreturn() */
 	int	$0x80				/* enter kernel with args */

==== //depot/projects/binutils/src/sys/amd64/linux32/linux32_sysvec.c#3 (text+ko) ====

@@ -355,9 +355,9 @@
 	frame.sf_sc.uc_mcontext.sc_mask   = frame.sf_sc.uc_sigmask.__bits[0];
         frame.sf_sc.uc_mcontext.sc_gs     = rgs();
         frame.sf_sc.uc_mcontext.sc_fs     = rfs();
-        __asm __volatile("movl %%es,%0" :
+        __asm __volatile("mov %%es,%0" :
 	    "=rm" (frame.sf_sc.uc_mcontext.sc_es));
-        __asm __volatile("movl %%ds,%0" :
+        __asm __volatile("mov %%ds,%0" :
 	    "=rm" (frame.sf_sc.uc_mcontext.sc_ds));
 	frame.sf_sc.uc_mcontext.sc_edi    = regs->tf_rdi;
 	frame.sf_sc.uc_mcontext.sc_esi    = regs->tf_rsi;
@@ -489,8 +489,8 @@
 	frame.sf_sc.sc_mask   = lmask.__bits[0];
         frame.sf_sc.sc_gs     = rgs();
         frame.sf_sc.sc_fs     = rfs();
-        __asm __volatile("movl %%es,%0" : "=rm" (frame.sf_sc.sc_es));
-        __asm __volatile("movl %%ds,%0" : "=rm" (frame.sf_sc.sc_ds));
+        __asm __volatile("mov %%es,%0" : "=rm" (frame.sf_sc.sc_es));
+        __asm __volatile("mov %%ds,%0" : "=rm" (frame.sf_sc.sc_ds));
 	frame.sf_sc.sc_edi    = regs->tf_rdi;
 	frame.sf_sc.sc_esi    = regs->tf_rsi;
 	frame.sf_sc.sc_ebp    = regs->tf_rbp;


More information about the p4-projects mailing list