From c761cdf5a082d0d22d18f2d70443da7d064e2187 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 21 Aug 2002 02:35:30 +0000 Subject: Update. * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when loading/reading segment registers. Some old hardware doesn't handle the 32-bit instructions as expected. * sysdeps/i386/tls.h: Likewise. --- linuxthreads/sysdeps/i386/tls.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'linuxthreads/sysdeps/i386/tls.h') diff --git a/linuxthreads/sysdeps/i386/tls.h b/linuxthreads/sysdeps/i386/tls.h index 0bec077..a168c00 100644 --- a/linuxthreads/sysdeps/i386/tls.h +++ b/linuxthreads/sysdeps/i386/tls.h @@ -123,8 +123,8 @@ typedef struct int result; \ if (secondcall) \ ldt_entry.entry_number = ({ int _gs; \ - asm ("movl %%gs, %0" : "=q" (_gs)); \ - _gs >> 3; }); \ + asm ("movw %%gs, %w0" : "=q" (_gs)); \ + (_gs & 0xffff) >> 3; }); \ asm volatile (TLS_LOAD_EBX \ "int $0x80\n\t" \ TLS_LOAD_EBX \ @@ -164,7 +164,7 @@ typedef struct __gs = TLS_SETUP_GS_SEGMENT (_descr, secondcall); \ if (__builtin_expect (__gs, 7) != -1) \ { \ - asm ("movl %0, %%gs" : : "q" (__gs)); \ + asm ("movw %w0, %%gs" : : "q" (__gs)); \ __gs = 0; \ } \ __gs; \ -- cgit v1.1