Mercurial > hg > graal-jvmci-8
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 */ |