summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-freebsd/freebsd-sources/files/freebsd-sources-6.0-asm.patch')
-rw-r--r--sys-freebsd/freebsd-sources/files/freebsd-sources-6.0-asm.patch143
1 files changed, 143 insertions, 0 deletions
diff --git a/sys-freebsd/freebsd-sources/files/freebsd-sources-6.0-asm.patch b/sys-freebsd/freebsd-sources/files/freebsd-sources-6.0-asm.patch
new file mode 100644
index 0000000..46181bf
--- /dev/null
+++ b/sys-freebsd/freebsd-sources/files/freebsd-sources-6.0-asm.patch
@@ -0,0 +1,143 @@
+Index: fbsd-6/sys/i386/i386/locore.s
+===================================================================
+--- fbsd-6.orig/sys/i386/i386/locore.s
++++ fbsd-6/sys/i386/i386/locore.s
+@@ -358,7 +358,7 @@ NON_GPROF_ENTRY(sigcode)
+ pushl %eax
+ testl $PSL_VM,UC_EFLAGS(%eax)
+ jne 1f
+- movl UC_GS(%eax),%gs /* restore %gs */
++ movw UC_GS(%eax),%gs /* restore %gs */
+ 1:
+ movl $SYS_sigreturn,%eax
+ pushl %eax /* junk to fake return addr. */
+@@ -375,7 +375,7 @@ freebsd4_sigcode:
+ pushl %eax
+ testl $PSL_VM,UC4_EFLAGS(%eax)
+ jne 1f
+- movl UC4_GS(%eax),%gs /* restore %gs */
++ movw UC4_GS(%eax),%gs /* restore %gs */
+ 1:
+ movl $344,%eax /* 4.x SYS_sigreturn */
+ pushl %eax /* junk to fake return addr. */
+@@ -393,7 +393,7 @@ osigcode:
+ pushl %eax
+ testl $PSL_VM,SC_PS(%eax)
+ jne 9f
+- movl SC_GS(%eax),%gs /* restore %gs */
++ movw SC_GS(%eax),%gs /* restore %gs */
+ 9:
+ movl $103,%eax /* 3.x SYS_sigreturn */
+ pushl %eax /* junk to fake return addr. */
+Index: fbsd-6/sys/i386/include/cpufunc.h
+===================================================================
+--- fbsd-6.orig/sys/i386/include/cpufunc.h
++++ fbsd-6/sys/i386/include/cpufunc.h
+@@ -452,7 +452,7 @@ static __inline u_int
+ rfs(void)
+ {
+ u_int sel;
+- __asm __volatile("movl %%fs,%0" : "=rm" (sel));
++ __asm __volatile("movw %%fs,%0" : "=rm" (sel));
+ return (sel);
+ }
+
+@@ -460,7 +460,7 @@ static __inline u_int
+ rgs(void)
+ {
+ u_int sel;
+- __asm __volatile("movl %%gs,%0" : "=rm" (sel));
++ __asm __volatile("movw %%gs,%0" : "=rm" (sel));
+ return (sel);
+ }
+
+@@ -468,20 +468,20 @@ static __inline u_int
+ rss(void)
+ {
+ u_int sel;
+- __asm __volatile("movl %%ss,%0" : "=rm" (sel));
++ __asm __volatile("movw %%ss,%0" : "=rm" (sel));
+ return (sel);
+ }
+
+ static __inline void
+ load_fs(u_int sel)
+ {
+- __asm __volatile("movl %0,%%fs" : : "rm" (sel));
++ __asm __volatile("movw %0,%%fs" : : "rm" (sel));
+ }
+
+ static __inline void
+ load_gs(u_int sel)
+ {
+- __asm __volatile("movl %0,%%gs" : : "rm" (sel));
++ __asm __volatile("movw %0,%%gs" : : "rm" (sel));
+ }
+
+ static __inline void
+Index: fbsd-6/sys/i386/i386/swtch.s
+===================================================================
+--- fbsd-6.orig/sys/i386/i386/swtch.s
++++ fbsd-6/sys/i386/i386/swtch.s
+@@ -111,7 +111,7 @@ ENTRY(cpu_switch)
+ movl %ebp,PCB_EBP(%edx)
+ movl %esi,PCB_ESI(%edx)
+ movl %edi,PCB_EDI(%edx)
+- movl %gs,PCB_GS(%edx)
++ movw %gs,PCB_GS(%edx)
+ pushfl /* PSL */
+ popl PCB_PSL(%edx)
+ /* Check to see if we need to call a switchout function. */
+@@ -279,7 +279,7 @@ sw1:
+ /* This must be done after loading the user LDT. */
+ .globl cpu_switch_load_gs
+ cpu_switch_load_gs:
+- movl PCB_GS(%edx),%gs
++ movw PCB_GS(%edx),%gs
+
+ /* Test if debug registers should be restored. */
+ testl $PCB_DBREGS,PCB_FLAGS(%edx)
+@@ -348,7 +348,7 @@ ENTRY(savectx)
+ movl %ebp,PCB_EBP(%ecx)
+ movl %esi,PCB_ESI(%ecx)
+ movl %edi,PCB_EDI(%ecx)
+- movl %gs,PCB_GS(%ecx)
++ movw %gs,PCB_GS(%ecx)
+ pushfl
+ popl PCB_PSL(%ecx)
+
+Index: fbsd-6/sys/compat/ndis/winx32_wrap.S
+===================================================================
+--- fbsd-6.orig/sys/compat/ndis/winx32_wrap.S
++++ fbsd-6/sys/compat/ndis/winx32_wrap.S
+@@ -364,7 +364,7 @@ ENTRY(x86_getfs)
+ ret
+
+ ENTRY(x86_setfs)
+- movl 4(%esp),%fs
++ movw 4(%esp),%fs
+ ret
+
+ ENTRY(x86_gettid)
+Index: fbsd-6/sys/i386/linux/linux_locore.s
+===================================================================
+--- fbsd-6.orig/sys/i386/linux/linux_locore.s
++++ fbsd-6/sys/i386/linux/linux_locore.s
+@@ -8,7 +8,7 @@
+ NON_GPROF_ENTRY(linux_sigcode)
+ call *LINUX_SIGF_HANDLER(%esp)
+ leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */
+- movl LINUX_SC_GS(%ebx),%gs
++ movw LINUX_SC_GS(%ebx),%gs
+ movl %esp, %ebx /* pass sigframe */
+ push %eax /* fake ret addr */
+ movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */
+@@ -19,7 +19,7 @@ NON_GPROF_ENTRY(linux_sigcode)
+ linux_rt_sigcode:
+ call *LINUX_RT_SIGF_HANDLER(%esp)
+ leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */
+- movl LINUX_SC_GS(%ebx),%gs
++ movw LINUX_SC_GS(%ebx),%gs
+ push %eax /* fake ret addr */
+ movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */
+ int $0x80 /* enter kernel with args */