diff options
Diffstat (limited to 'src/cim/cim_defs.h.rej')
-rw-r--r-- | src/cim/cim_defs.h.rej | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/cim/cim_defs.h.rej b/src/cim/cim_defs.h.rej new file mode 100644 index 0000000..3d892c6 --- /dev/null +++ b/src/cim/cim_defs.h.rej @@ -0,0 +1,45 @@ +*************** +*** 208,227 **** + *-----------------------------------------------------------------*/ + + #define MSR_WRITE(msr,adr,val) \ +- { int d0, d1, d2, d3, d4; \ + __asm__ __volatile__( \ + " mov $0x0AC1C, %%edx\n" \ + " mov $0xFC530007, %%eax\n" \ + " out %%eax,%%dx\n" \ + " add $2,%%dl\n" \ +- " mov %5, %4\n" \ +- " mov 0(%6), %1\n" \ +- " mov 4(%6), %0\n" \ +- " xor %3, %3\n" \ + " xor %2, %2\n" \ +- " out %%ax, %%dx" \ +- : "=a" (d0), "=b" (d1), "=&D" (d2), "=&S" (d3), "=c" (d4) \ +- : "2" (msr | adr), "3" (val)); \ + } + + #elif CIMARRON_MSR_KERNEL_ROUTINE +--- 208,229 ---- + *-----------------------------------------------------------------*/ + + #define MSR_WRITE(msr,adr,val) \ ++ { int d0, d1, d2, d3; \ + __asm__ __volatile__( \ ++ " push %%ebx\n" \ + " mov $0x0AC1C, %%edx\n" \ + " mov $0xFC530007, %%eax\n" \ + " out %%eax,%%dx\n" \ + " add $2,%%dl\n" \ ++ " mov %4, %3\n" \ ++ " mov 0(%5), %%ebx\n" \ ++ " mov 4(%5), %0\n" \ + " xor %2, %2\n" \ ++ " xor %1, %1\n" \ ++ " out %%ax, %%dx\n" \ ++ " pop %%ebx\n" \ ++ : "=a" (d0), "=&D" (d1), "=&S" (d2), "=c" (d3) \ ++ : "1" (msr | adr), "2" (val)); \ + } + + #elif CIMARRON_MSR_KERNEL_ROUTINE |