I'm trialing the LZ77 compression functions in IPP. On my normal machine Win7 x64 the 32bit app linked with the _l version of the libraries is working fine. When I try to run it under Virtual PC 2007 on certain OSes I get a crash when it goes to use the ipp functions. Under NT4 SP6 in the virtual pc it reports invalid instruction (0xc000001d), under XP in the virtual pc it says ".. has encountered a problem and needs to close" (0xc0000005). However under Windows 98SE and Vista in Virtual PC it was working for both. I tried with and without hardware virtualization enabled on the virtual machine.
Why would it care about the OS? Is there something I'm missing here? Or Bug?
P.S. I'm not looking for a boiler plate answer that you need XP SP3 or later or something like that because were talking just low level code that works on linux, windows, raw system and may end up in drivers as well and can't have apps limited to only working on a certain OS.
More details: If the program actually loaded at 0x400000 then the instruction on NT4 reported as invalid is: movd xmm0, esi
Also running the CPU ID utility from Intel version 4.50.20120412 - universal one says the same thing if hardware assistance is enabled or not. It say s it's an i7-2600K CPU @ 3.40GHz expected, -32768 reported, , system bus 100MHZ. Processor Type: 0, packaging: LGA2011, Family: 6, Model: 2A, Stepping: 7, Revision: 7FFFFFFF, Level 2 cache, none, Level 1 data/ins cache:0, SIMD Yes, SIMD 2 Yes, SIMD3,4 and the rest of it, No. So maybe either Virtual PC misreports the CPU instructions it supports or the CPU detection routine goes outside the VM to find the system CPU which then causes the wrong supported instructions from being used????