]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-cpuid.patch
- updated amd64 patch
[packages/rpm.git] / rpm-cpuid.patch
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@*/
This page took 0.03529 seconds and 3 git commands to generate.