From 8375d3a4bccea7d2fd5ae8be06b35a005a2ca10e Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 3 Jun 2003 18:44:31 +0000 Subject: [PATCH] Bah, revert the previous commit for the time being due to inadequate testing on my part. The output asm looks correct with the previous commit in place and it works on amd64, but on my laptop I got a spew of AE_BAD_PARAMETER errors trying to unlock the acpi global lock. --- sys/i386/include/acpica_machdep.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sys/i386/include/acpica_machdep.h b/sys/i386/include/acpica_machdep.h index a59cfe1c0fa..2624e632ee9 100644 --- a/sys/i386/include/acpica_machdep.h +++ b/sys/i386/include/acpica_machdep.h @@ -72,27 +72,29 @@ */ #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ do { \ - asm("1: movl %1,%%eax;" \ + int dummy; \ + asm("1: movl (%1),%%eax;" \ "movl %%eax,%%edx;" \ "andl %2,%%edx;" \ "btsl $0x1,%%edx;" \ "adcl $0x0,%%edx;" \ - "lock; cmpxchgl %%edx,%1;" \ + "lock; cmpxchgl %%edx,(%1);" \ "jnz 1b;" \ "cmpb $0x3,%%dl;" \ "sbbl %%eax,%%eax" \ - : "=a" (Acq), "+m" (GLptr) : "i" (~1L) : "edx"); \ + :"=a"(Acq),"=c"(dummy):"c"(GLptr),"i"(~1L):"dx"); \ } while(0) #define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \ do { \ - asm("1: movl %1,%%eax;" \ + int dummy; \ + asm("1: movl (%1),%%eax;" \ "movl %%eax,%%edx;" \ "andl %2,%%edx;" \ - "lock; cmpxchgl %%edx,%1;" \ + "lock; cmpxchgl %%edx,(%1);" \ "jnz 1b;" \ "andl $0x1,%%eax" \ - : "=a" (Acq), "+m" (GLptr) : "i" (~3L) : "edx"); \ + :"=a"(Acq),"=c"(dummy):"c"(GLptr),"i"(~3L):"dx"); \ } while(0)