comparison src/cpu/x86/vm/nativeInst_x86.hpp @ 7943:a413bcd552a4

Relax safepoint polling assertion.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 05 Mar 2013 21:58:51 +0100
parents f565e8d4d200
children b8f261ba79c6
comparison
equal deleted inserted replaced
7942:1c05f6f747d3 7943:a413bcd552a4
572 return true; 572 return true;
573 } else { 573 } else {
574 return false; 574 return false;
575 } 575 }
576 } else { 576 } else {
577 #ifdef GRAAL
578 // Graal may allocate an arbitrary register for storing the polling address.
579 return true;
580 #else
577 if (ubyte_at(0) == Assembler::REX_WR && ubyte_at(1) == NativeMovRegMem::instruction_code_mem2reg && ubyte_at(2) == 0x15) { // mov r10, rip[...] 581 if (ubyte_at(0) == Assembler::REX_WR && ubyte_at(1) == NativeMovRegMem::instruction_code_mem2reg && ubyte_at(2) == 0x15) { // mov r10, rip[...]
578 address fault = addr_at(7) + int_at(3); 582 address fault = addr_at(7) + int_at(3);
579 return os::is_poll_address(fault); 583 return os::is_poll_address(fault);
580 } else if (ubyte_at(0) == NativeTstRegMem::instruction_code_memXregl && ubyte_at(1) == 0x05) { // 00 rax 101 584 } else if (ubyte_at(0) == NativeTstRegMem::instruction_code_memXregl && ubyte_at(1) == 0x05) { // 00 rax 101
581 address fault = addr_at(6) + int_at(2); 585 address fault = addr_at(6) + int_at(2);
582 return os::is_poll_address(fault); 586 return os::is_poll_address(fault);
583 } else { 587 } else {
584 return false; 588 return false;
585 } 589 }
590 #endif
586 } 591 }
587 #else 592 #else
588 return ( ubyte_at(0) == NativeMovRegMem::instruction_code_mem2reg || 593 return ( ubyte_at(0) == NativeMovRegMem::instruction_code_mem2reg ||
589 ubyte_at(0) == NativeTstRegMem::instruction_code_memXregl ) && 594 ubyte_at(0) == NativeTstRegMem::instruction_code_memXregl ) &&
590 (ubyte_at(1)&0xC7) == 0x05 && /* Mod R/M == disp32 */ 595 (ubyte_at(1)&0xC7) == 0x05 && /* Mod R/M == disp32 */