View Single Post
 
Old 10-13-2011, 02:09 PM
andyvand's Avatar
andyvand andyvand is offline
 
Join Date: Apr 2009
Location: Tienen
Posts: 515
Quote:
Originally Posted by kocoman View Post
Slice made a comment about the SSE3 problem at InsanelyMac

. SSE3 emulator implementation is wrong. The new emulator occupies 2 pages while you allocated only one.

CODE
+ printf("Enabling SSE3 emulator...");
+ /* Install into commpage. Actual patching of master_idt happens in start.s */
+ /* ASSERT(sse3emu_size == PAGE_SIZE); */
+ commpage_stuff2(_COMM_PAGE_SSE3EMU, &sse3emu_data, sse3emu_size, TRUE);
+ printf("done.\n");
Should be like
CODE
if (!(_cpu_capabilities & kHasSSE3)) {
printf("enabling %s emulator...", "SSE3");
// Install into commpage. Actual patching of master_idt happens elsewhere

commpage_stuff2(_COMM_PAGE_SSE2EMU, &sse3emu_ffff4000, sizeof(sse3emu_ffff4000), legacy);
commpage_stuff2(_COMM_PAGE_SSE2EMU2, &sse3emu_ffff5000, sizeof(sse3emu_ffff5000), legacy);
printf("OK!\n");
}
Tried that allready.
It panics on the following instruction at 0xFFFF4001 -> lock inc %eax.
Old kernel checks which SSE3 emulator is requested...
Reply With Quote