Update 2010/01/04
但我测试Intel C++的最新版本11.1.054时发现intel并没有修正该问题
------------------------------------------------------------------
反汇编Intel C++ 安装目录中的lib中的libirc.lib会得到如下输出:
00000000 <___intel_cpu_indicator_init>:
0: 50 push %eax
1: 52 push %edx
2: 51 push %ecx
3: 53 push %ebx
4: 57 push %edi
5: 56 push %esi
6: 55 push %ebp
7: 8b ec mov %esp,%ebp
9: 83 ec 50 sub $0x50,%esp
c: 9c pushf
d: 58 pop %eax
e: 8b c8 mov %eax,%ecx
10: 35 00 00 20 00 xor $0x200000,%eax
15: 50 push %eax
16: 9d popf
17: 9c pushf
18: 58 pop %eax
19: 3b c1 cmp %ecx,%eax
1b: 74 27 je 44 <___intel_cpu_indicator_init+0x44>
1d: 51 push %ecx
1e: 9d popf
1f: 33 c0 xor %eax,%eax
21: 0f a2 cpuid
23: 89 45 f8 mov %eax,-0x8(%ebp)
26: 89 5d fc mov %ebx,-0x4(%ebp)
29: 89 4d ec mov %ecx,-0x14(%ebp)
2c: 89 55 f4 mov %edx,-0xc(%ebp)
2f: b8 01 00 00 00 mov $0x1,%eax
34: 0f a2 cpuid
36: 89 45 f0 mov %eax,-0x10(%ebp)
39: 89 5d dc mov %ebx,-0x24(%ebp)
3c: 89 4d e4 mov %ecx,-0x1c(%ebp)
3f: 89 55 e8 mov %edx,-0x18(%ebp)
42: eb 1a jmp 5e <___intel_cpu_indicator_init+0x5e>
44: 33 c0 xor %eax,%eax
46: 89 45 f8 mov %eax,-0x8(%ebp)
49: 89 45 fc mov %eax,-0x4(%ebp)
4c: 89 45 ec mov %eax,-0x14(%ebp)
4f: 89 45 f4 mov %eax,-0xc(%ebp)
52: 89 45 f0 mov %eax,-0x10(%ebp)
55: 89 45 dc mov %eax,-0x24(%ebp)
58: 89 45 e4 mov %eax,-0x1c(%ebp)
5b: 89 45 e8 mov %eax,-0x18(%ebp)
5e: 81 7d fc 47 65 6e 75 cmpl $0x756e6547,-0x4(%ebp)
65: 75 19 jne 80 <___intel_cpu_indicator_init+0x80>
67: 81 7d f4 69 6e 65 49 cmpl $0x49656e69,-0xc(%ebp)
6e: 75 10 jne 80 <___intel_cpu_indicator_init+0x80>
70: 81 7d ec 6e 74 65 6c cmpl $0x6c65746e,-0x14(%ebp)
77: 75 07 jne 80 <___intel_cpu_indicator_init+0x80>
79: b8 01 00 00 00 mov $0x1,%eax
7e: eb 02 jmp 82 <___intel_cpu_indicator_init+0x82>
80: 33 c0 xor %eax,%eax
82: 83 7d f8 00 cmpl $0x0,-0x8(%ebp)
86: 0f 84 24 01 00 00 je 1b0 <___intel_cpu_indicator_init+0x1b0>
8c: 85 c0 test %eax,%eax
8e: 0f 84 1c 01 00 00 je 1b0 <___intel_cpu_indicator_init+0x1b0>
94: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
98: 83 e0 0f and $0xf,%eax
9b: 83 f8 05 cmp $0x5,%eax
9e: 0f 84 f7 00 00 00 je 19b <___intel_cpu_indicator_init+0x19b>
a4: 83 f8 06 cmp $0x6,%eax
a7: 0f 85 c9 00 00 00 jne 176 <___intel_cpu_indicator_init+0x176>
ad: 8b 45 e8 mov -0x18(%ebp),%eax
b0: 8b c8 mov %eax,%ecx
b2: 81 e1 00 00 80 00 and $0x800000,%ecx
b8