]>
Commit | Line | Data |
---|---|---|
b22c85be PS |
1 | --- rpm-4.3/lib/rpmrc.c.orig 2004-03-29 14:43:40.000000000 +0200 |
2 | +++ rpm-4.3/lib/rpmrc.c 2004-03-29 14:52:50.141270392 +0200 | |
3 | @@ -893,16 +893,13 @@ | |
4 | #ifdef __LCLINT__ | |
5 | *eax = *ebx = *ecx = *edx = 0; | |
6 | #endif | |
7 | -#ifdef PIC | |
8 | - __asm__("pushl %%ebx; cpuid; movl %%ebx,%1; popl %%ebx" | |
9 | - : "=a"(*eax), "=g"(*ebx), "=&c"(*ecx), "=&d"(*edx) | |
10 | - : "a" (op)); | |
11 | -#else | |
12 | - __asm__("cpuid" | |
13 | - : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx) | |
14 | - : "a" (op)); | |
15 | -#endif | |
16 | - | |
17 | + asm volatile ( | |
18 | + "pushl %%ebx \n" | |
19 | + "cpuid \n" | |
20 | + "movl %%ebx, %%esi \n" | |
21 | + "popl %%ebx \n" | |
22 | + : "=a" (*eax), "=S" (*ebx), "=c" (*ecx), "=d" (*edx) | |
23 | + : "a" (op)); | |
24 | } | |
25 | ||
26 | /* | |
27 | @@ -911,15 +908,8 @@ | |
28 | static inline unsigned int cpuid_eax(unsigned int op) | |
29 | /*@*/ | |
30 | { | |
31 | - unsigned int val; | |
32 | - | |
33 | -#ifdef PIC | |
34 | - __asm__("pushl %%ebx; cpuid; popl %%ebx" | |
35 | - : "=a" (val) : "a" (op) : "ecx", "edx"); | |
36 | -#else | |
37 | - __asm__("cpuid" | |
38 | - : "=a" (val) : "a" (op) : "ebx", "ecx", "edx"); | |
39 | -#endif | |
40 | + unsigned int tmp, val; | |
41 | + cpuid(op, &val, &tmp, &tmp, &tmp); | |
42 | return val; | |
43 | } | |
44 | ||
45 | @@ -927,14 +917,7 @@ | |
46 | /*@*/ | |
47 | { | |
48 | unsigned int tmp, val; | |
49 | - | |
50 | -#ifdef PIC | |
51 | - __asm__("pushl %%ebx; cpuid; movl %%ebx,%1; popl %%ebx" | |
52 | - : "=a" (tmp), "=g" (val) : "a" (op) : "ecx", "edx"); | |
53 | -#else | |
54 | - __asm__("cpuid" | |
55 | - : "=a" (tmp), "=b" (val) : "a" (op) : "ecx", "edx"); | |
56 | -#endif | |
57 | + cpuid(op, &tmp, &val, &tmp, &tmp); | |
58 | return val; | |
59 | } | |
60 | ||
61 | @@ -942,30 +925,16 @@ | |
62 | /*@*/ | |
63 | { | |
64 | unsigned int tmp, val; | |
65 | -#ifdef PIC | |
66 | - __asm__("pushl %%ebx; cpuid; popl %%ebx" | |
67 | - : "=a" (tmp), "=c" (val) : "a" (op) : "edx"); | |
68 | -#else | |
69 | - __asm__("cpuid" | |
70 | - : "=a" (tmp), "=c" (val) : "a" (op) : "ebx", "edx"); | |
71 | -#endif | |
72 | + cpuid(op, &tmp, &tmp, &val, &tmp); | |
73 | return val; | |
74 | - | |
75 | } | |
76 | ||
77 | static inline unsigned int cpuid_edx(unsigned int op) | |
78 | /*@*/ | |
79 | { | |
80 | unsigned int tmp, val; | |
81 | -#ifdef PIC | |
82 | - __asm__("pushl %%ebx; cpuid; popl %%ebx" | |
83 | - : "=a" (tmp), "=d" (val) : "a" (op) : "ecx"); | |
84 | -#else | |
85 | - __asm__("cpuid" | |
86 | - : "=a" (tmp), "=d" (val) : "a" (op) : "ebx", "ecx"); | |
87 | -#endif | |
88 | + cpuid(op, &tmp, &tmp, &tmp, &val); | |
89 | return val; | |
90 | - | |
91 | } | |
92 | ||
93 | /*@unchecked@*/ |