Mercurial > mm7
comparison mm7_5.cpp @ 731:de482c901171
Moved unused CPU detection stuff to a separate file.
author | Nomad |
---|---|
date | Fri, 22 Mar 2013 11:18:51 +0200 |
parents | 9d13d2ec35a6 |
children | 6daaa2f18d0d |
comparison
equal
deleted
inserted
replaced
730:79ad0526166c | 731:de482c901171 |
---|---|
4016 | 4016 |
4017 | 4017 |
4018 | 4018 |
4019 | 4019 |
4020 | 4020 |
4021 //----- (004382BC) -------------------------------------------------------- | |
4022 __int16 __thiscall sub_4382BC(int _this) | |
4023 { | |
4024 LOG_DECOMPILATION_WARNING(); | |
4025 return 0; | |
4026 /*__int16 result; // ax@4 | |
4027 __int16 v14; // sp@11 | |
4028 int v15; // [sp-4h] [bp-Ch]@0 | |
4029 signed __int16 v16; // [sp+4h] [bp-4h]@1 | |
4030 __int16 v17; // [sp+4h] [bp-4h]@8 | |
4031 __int16 v18; // [sp+4h] [bp-4h]@11 | |
4032 | |
4033 v16 = 1; | |
4034 __asm { pushf } | |
4035 if ( v15 == (v15 ^ 0x200000) ) | |
4036 v16 = 0; | |
4037 if ( v16 ) | |
4038 { | |
4039 result = sub_43847A(); | |
4040 } | |
4041 else | |
4042 { | |
4043 //UNDEF(_ZF); | |
4044 //UNDEF(_SF); | |
4045 //UNDEF(_OF); | |
4046 _CF = 0; | |
4047 if ( !_ZF ) | |
4048 _CF = 1; | |
4049 __asm { pushfw } | |
4050 bProcessorIsNotIntel = (BYTE2(v15) & 1 ^ 1) & 1; | |
4051 _CF = 0; | |
4052 _OF = 0; | |
4053 _ZF = 0; | |
4054 _SF = 1; | |
4055 __asm { pushfw } | |
4056 v17 = 2; | |
4057 if ( (HIWORD(v15) | 0xF000) & 0xF000 ) | |
4058 v17 = -1; | |
4059 __asm { popfw } | |
4060 result = v17; | |
4061 if ( v17 != 2 ) | |
4062 { | |
4063 _CF = 0; | |
4064 _OF = 0; | |
4065 _ZF = v14 == 0; | |
4066 _SF = v14 < 0; | |
4067 __asm { pushf } | |
4068 v18 = 3; | |
4069 if ( v15 != (v15 ^ 0x40000) ) | |
4070 v18 = -1; | |
4071 __asm { popf } | |
4072 result = v18; | |
4073 if ( v18 != 3 ) | |
4074 result = 4; | |
4075 } | |
4076 } | |
4077 if ( bProcessorIsNotIntel ) | |
4078 HIBYTE(result) |= 0x80u; | |
4079 return result;*/ | |
4080 } | |
4081 | |
4082 //----- (004383ED) -------------------------------------------------------- | |
4083 int __cdecl sub_4383ED() | |
4084 { | |
4085 LOG_DECOMPILATION_WARNING(); | |
4086 return 0; | |
4087 /*signed int v9; // eax@4 | |
4088 int v16; // [sp-4h] [bp-38h]@0 | |
4089 int v17[3]; // [sp+Ch] [bp-28h]@1 | |
4090 char v18; // [sp+18h] [bp-1Ch]@1 | |
4091 char v19; // [sp+19h] [bp-1Bh]@1 | |
4092 int v20[4]; // [sp+1Ch] [bp-18h]@1 | |
4093 int v21; // [sp+2Ch] [bp-8h]@1 | |
4094 int v22; // [sp+30h] [bp-4h]@1 | |
4095 | |
4096 v17[0] = *(int *)"------------"; | |
4097 v17[1] = *(int *)"--------"; | |
4098 v17[2] = *(int *)"----"; | |
4099 v18 = asc_4E4938[12]; | |
4100 v19 = 0; | |
4101 v22 = 0; | |
4102 v20[0] = *(int *)"GenuineIntel"; | |
4103 v20[1] = *(int *)"ineIntel"; | |
4104 v20[2] = *(int *)"ntel"; | |
4105 LOBYTE(v20[3]) = aGenuineintel[12]; | |
4106 _CF = 0; | |
4107 _OF = 0; | |
4108 _ZF = 0; | |
4109 _SF = 0; | |
4110 v21 = 1; | |
4111 __asm { pushf } | |
4112 if ( v16 == (v16 ^ 0x200000) ) | |
4113 v21 = 0; | |
4114 if ( (short)v21 ) | |
4115 { | |
4116 _EAX = 0; | |
4117 __asm { cpuid } | |
4118 v17[0] = _EBX; | |
4119 v17[1] = _EDX; | |
4120 v17[2] = _ECX; | |
4121 v9 = 0; | |
4122 do | |
4123 { | |
4124 if ( *((char *)v17 + v9) != *((char *)v20 + v9) ) | |
4125 bProcessorIsNotIntel = 1; | |
4126 ++v9; | |
4127 } | |
4128 while ( v9 < 12 ); | |
4129 if ( v9 >= 1 ) | |
4130 { | |
4131 _EAX = 1; | |
4132 __asm { cpuid } | |
4133 v22 = _EDX; | |
4134 } | |
4135 } | |
4136 return v22;*/ | |
4137 } | |
4138 | |
4139 //----- (0043847A) -------------------------------------------------------- | |
4140 __int16 __cdecl sub_43847A() | |
4141 { | |
4142 __debugbreak(); | |
4143 return 0; | |
4144 /*signed int v5; // eax@1 | |
4145 char v12[12]; // [sp+Ch] [bp-28h]@1 | |
4146 char v13; // [sp+18h] [bp-1Ch]@1 | |
4147 char v14; // [sp+19h] [bp-1Bh]@1 | |
4148 int v15[4]; // [sp+1Ch] [bp-18h]@1 | |
4149 int v16; // [sp+2Eh] [bp-6h]@1 | |
4150 char v17; // [sp+32h] [bp-2h]@6 | |
4151 char v18; // [sp+33h] [bp-1h]@1 | |
4152 | |
4153 *(int *)v12 = *(int *)"------------"; | |
4154 *(int *)&v12[4] = *(int *)"--------"; | |
4155 *(int *)&v12[8] = *(int *)"----"; | |
4156 v13 = asc_4E4938[12]; | |
4157 v14 = 0; | |
4158 v18 = 0; | |
4159 v15[0] = *(int *)"GenuineIntel"; | |
4160 v15[1] = *(int *)"ineIntel"; | |
4161 v15[2] = *(int *)"ntel"; | |
4162 v16 = 65535; | |
4163 LOBYTE(v15[3]) = aGenuineintel[12]; | |
4164 _EAX = 0; | |
4165 __asm { cpuid } | |
4166 *(int *)v12 = _EBX; | |
4167 *(int *)&v12[4] = _EDX; | |
4168 *(int *)&v12[8] = _ECX; | |
4169 v5 = 0; | |
4170 do | |
4171 { | |
4172 if ( v12[v5] != *((char *)v15 + v5) ) | |
4173 bProcessorIsNotIntel = 1; | |
4174 ++v5; | |
4175 } | |
4176 while ( v5 < 12 ); | |
4177 if ( v5 >= 1 ) | |
4178 { | |
4179 _EAX = 1; | |
4180 __asm { cpuid } | |
4181 v18 = _EAX & 0xF; | |
4182 LOBYTE(_EAX) = (unsigned __int8)(_EAX & 0xF0) >> 4; | |
4183 v17 = _EAX; | |
4184 LOWORD(v16) = ((_EAX & 0xF00u) >> 8) & 0xF; | |
4185 } | |
4186 return v16;*/ | |
4187 } | |
4188 | 4021 |
4189 | 4022 |
4190 | 4023 |
4191 //----- (004385B5) -------------------------------------------------------- | 4024 //----- (004385B5) -------------------------------------------------------- |
4192 void stru11::CheckCPU() | 4025 void stru11::CheckCPU() |