Ozkan Sezer | 4fba91a | 2009-07-17 16:47:16 +0000 | [diff] [blame] | 1 | /** |
| 2 | * This file has no copyright assigned and is placed in the Public Domain. |
Rafaël Carré | 8a67ab4 | 2012-06-28 15:40:59 +0000 | [diff] [blame] | 3 | * This file is part of the mingw-w64 runtime package. |
Kai Tietz | fa0cfe3 | 2010-01-15 20:02:21 +0000 | [diff] [blame] | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
Ozkan Sezer | 4fba91a | 2009-07-17 16:47:16 +0000 | [diff] [blame] | 5 | */ |
| 6 | |
Ozkan Sezer | 3d41592 | 2009-09-08 18:30:08 +0000 | [diff] [blame] | 7 | #include <intrin.h> |
Ozkan Sezer | 4fba91a | 2009-07-17 16:47:16 +0000 | [diff] [blame] | 8 | |
Corinna Vinschen | 0098989 | 2013-04-05 11:19:50 +0000 | [diff] [blame] | 9 | void __writemsr (unsigned __LONG32 msr, unsigned __int64 Value) |
Ozkan Sezer | 3d41592 | 2009-09-08 18:30:08 +0000 | [diff] [blame] | 10 | { |
Corinna Vinschen | 0098989 | 2013-04-05 11:19:50 +0000 | [diff] [blame] | 11 | unsigned __LONG32 val1 = Value, val2 = Value >> 32; |
Ozkan Sezer | 4fba91a | 2009-07-17 16:47:16 +0000 | [diff] [blame] | 12 | __asm__ __volatile__ ( |
| 13 | "wrmsr" |
| 14 | : |
| 15 | : "c" (msr), "a" (val1), "d" (val2)); |
Ozkan Sezer | 3d41592 | 2009-09-08 18:30:08 +0000 | [diff] [blame] | 16 | } |
Ozkan Sezer | 4fba91a | 2009-07-17 16:47:16 +0000 | [diff] [blame] | 17 | |