Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 89010
b: refs/heads/master
c: cca2e6f
h: refs/heads/master
v: v3
  • Loading branch information
Joe Perches authored and Ingo Molnar committed Apr 17, 2008
1 parent 17f9781 commit 5c5c9a4
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 36 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4943aa4ec25ccc7161f4f4fcdd0018a4c1f6d4e8
refs/heads/master: cca2e6f87e3856953503aae2c0b8a1d5628796ef
73 changes: 38 additions & 35 deletions trunk/include/asm-x86/processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,12 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
unsigned int *ecx, unsigned int *edx)
{
/* ecx is often an input as well as an output. */
__asm__("cpuid"
: "=a" (*eax),
"=b" (*ebx),
"=c" (*ecx),
"=d" (*edx)
: "0" (*eax), "2" (*ecx));
asm("cpuid"
: "=a" (*eax),
"=b" (*ebx),
"=c" (*ecx),
"=d" (*edx)
: "0" (*eax), "2" (*ecx));
}

static inline void load_cr3(pgd_t *pgdir)
Expand Down Expand Up @@ -427,17 +427,23 @@ static inline unsigned long native_get_debugreg(int regno)

switch (regno) {
case 0:
asm("mov %%db0, %0" :"=r" (val)); break;
asm("mov %%db0, %0" :"=r" (val));
break;
case 1:
asm("mov %%db1, %0" :"=r" (val)); break;
asm("mov %%db1, %0" :"=r" (val));
break;
case 2:
asm("mov %%db2, %0" :"=r" (val)); break;
asm("mov %%db2, %0" :"=r" (val));
break;
case 3:
asm("mov %%db3, %0" :"=r" (val)); break;
asm("mov %%db3, %0" :"=r" (val));
break;
case 6:
asm("mov %%db6, %0" :"=r" (val)); break;
asm("mov %%db6, %0" :"=r" (val));
break;
case 7:
asm("mov %%db7, %0" :"=r" (val)); break;
asm("mov %%db7, %0" :"=r" (val));
break;
default:
BUG();
}
Expand Down Expand Up @@ -478,14 +484,14 @@ static inline void native_set_iopl_mask(unsigned mask)
#ifdef CONFIG_X86_32
unsigned int reg;

__asm__ __volatile__ ("pushfl;"
"popl %0;"
"andl %1, %0;"
"orl %2, %0;"
"pushl %0;"
"popfl"
: "=&r" (reg)
: "i" (~X86_EFLAGS_IOPL), "r" (mask));
asm volatile ("pushfl;"
"popl %0;"
"andl %1, %0;"
"orl %2, %0;"
"pushl %0;"
"popfl"
: "=&r" (reg)
: "i" (~X86_EFLAGS_IOPL), "r" (mask));
#endif
}

Expand Down Expand Up @@ -523,8 +529,8 @@ static inline void native_swapgs(void)
#define set_debugreg(value, register) \
native_set_debugreg(register, value)

static inline void
load_sp0(struct tss_struct *tss, struct thread_struct *thread)
static inline void load_sp0(struct tss_struct *tss,
struct thread_struct *thread)
{
native_load_sp0(tss, thread);
}
Expand Down Expand Up @@ -680,7 +686,7 @@ static inline unsigned int cpuid_edx(unsigned int op)
/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
static inline void rep_nop(void)
{
__asm__ __volatile__("rep; nop" ::: "memory");
asm volatile("rep; nop" ::: "memory");
}

static inline void cpu_relax(void)
Expand All @@ -694,32 +700,29 @@ static inline void sync_core(void)
int tmp;

asm volatile("cpuid" : "=a" (tmp) : "0" (1)
: "ebx", "ecx", "edx", "memory");
: "ebx", "ecx", "edx", "memory");
}

static inline void
__monitor(const void *eax, unsigned long ecx, unsigned long edx)
static inline void __monitor(const void *eax, unsigned long ecx,
unsigned long edx)
{
/* "monitor %eax, %ecx, %edx;" */
asm volatile(
".byte 0x0f, 0x01, 0xc8;"
:: "a" (eax), "c" (ecx), "d"(edx));
asm volatile(".byte 0x0f, 0x01, 0xc8;"
:: "a" (eax), "c" (ecx), "d"(edx));
}

static inline void __mwait(unsigned long eax, unsigned long ecx)
{
/* "mwait %eax, %ecx;" */
asm volatile(
".byte 0x0f, 0x01, 0xc9;"
:: "a" (eax), "c" (ecx));
asm volatile(".byte 0x0f, 0x01, 0xc9;"
:: "a" (eax), "c" (ecx));
}

static inline void __sti_mwait(unsigned long eax, unsigned long ecx)
{
/* "mwait %eax, %ecx;" */
asm volatile(
"sti; .byte 0x0f, 0x01, 0xc9;"
:: "a" (eax), "c" (ecx));
asm volatile("sti; .byte 0x0f, 0x01, 0xc9;"
:: "a" (eax), "c" (ecx));
}

extern void mwait_idle_with_hints(unsigned long eax, unsigned long ecx);
Expand Down

0 comments on commit 5c5c9a4

Please sign in to comment.