Mercurial > hg > truffle
comparison src/cpu/x86/vm/assembler_x86.cpp @ 5984:fd09f2d8283e
7157141: crash in 64 bit with corrupted oops
Reviewed-by: kvn, iveresov
author | never |
---|---|
date | Mon, 02 Apr 2012 16:05:56 -0700 |
parents | fd8114661503 |
children | 6759698e3140 |
comparison
equal
deleted
inserted
replaced
5977:e02867d10860 | 5984:fd09f2d8283e |
---|---|
526 | 526 |
527 case REP8(0xB8): // movl/q r, #32/#64(oop?) | 527 case REP8(0xB8): // movl/q r, #32/#64(oop?) |
528 if (which == end_pc_operand) return ip + (is_64bit ? 8 : 4); | 528 if (which == end_pc_operand) return ip + (is_64bit ? 8 : 4); |
529 // these asserts are somewhat nonsensical | 529 // these asserts are somewhat nonsensical |
530 #ifndef _LP64 | 530 #ifndef _LP64 |
531 assert(which == imm_operand || which == disp32_operand, ""); | 531 assert(which == imm_operand || which == disp32_operand, |
532 err_msg("which %d is_64_bit %d ip " INTPTR_FORMAT, which, is_64bit, ip)); | |
532 #else | 533 #else |
533 assert((which == call32_operand || which == imm_operand) && is_64bit || | 534 assert((which == call32_operand || which == imm_operand) && is_64bit || |
534 which == narrow_oop_operand && !is_64bit, ""); | 535 which == narrow_oop_operand && !is_64bit, |
536 err_msg("which %d is_64_bit %d ip " INTPTR_FORMAT, which, is_64bit, ip)); | |
535 #endif // _LP64 | 537 #endif // _LP64 |
536 return ip; | 538 return ip; |
537 | 539 |
538 case 0x69: // imul r, a, #32 | 540 case 0x69: // imul r, a, #32 |
539 case 0xC7: // movl a, #32(oop?) | 541 case 0xC7: // movl a, #32(oop?) |