comparison src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @ 12226:7944aba7ba41

8015107: NPG: Use consistent naming for metaspace concepts Reviewed-by: coleenp, mgerdin, hseigel
author ehelin
date Mon, 12 Aug 2013 17:37:02 +0200
parents f98f5d48f511
children da051ce490eb
comparison
equal deleted inserted replaced
12186:313b724f8911 12226:7944aba7ba41
339 // inline cache check; done before the frame is built. 339 // inline cache check; done before the frame is built.
340 int LIR_Assembler::check_icache() { 340 int LIR_Assembler::check_icache() {
341 Register receiver = FrameMap::receiver_opr->as_register(); 341 Register receiver = FrameMap::receiver_opr->as_register();
342 Register ic_klass = IC_Klass; 342 Register ic_klass = IC_Klass;
343 const int ic_cmp_size = LP64_ONLY(10) NOT_LP64(9); 343 const int ic_cmp_size = LP64_ONLY(10) NOT_LP64(9);
344 const bool do_post_padding = VerifyOops || UseCompressedKlassPointers; 344 const bool do_post_padding = VerifyOops || UseCompressedClassPointers;
345 if (!do_post_padding) { 345 if (!do_post_padding) {
346 // insert some nops so that the verified entry point is aligned on CodeEntryAlignment 346 // insert some nops so that the verified entry point is aligned on CodeEntryAlignment
347 while ((__ offset() + ic_cmp_size) % CodeEntryAlignment != 0) { 347 while ((__ offset() + ic_cmp_size) % CodeEntryAlignment != 0) {
348 __ nop(); 348 __ nop();
349 } 349 }
1261 __ movptr(dest->as_register(), from_addr); 1261 __ movptr(dest->as_register(), from_addr);
1262 } 1262 }
1263 break; 1263 break;
1264 1264
1265 case T_ADDRESS: 1265 case T_ADDRESS:
1266 if (UseCompressedKlassPointers && addr->disp() == oopDesc::klass_offset_in_bytes()) { 1266 if (UseCompressedClassPointers && addr->disp() == oopDesc::klass_offset_in_bytes()) {
1267 __ movl(dest->as_register(), from_addr); 1267 __ movl(dest->as_register(), from_addr);
1268 } else { 1268 } else {
1269 __ movptr(dest->as_register(), from_addr); 1269 __ movptr(dest->as_register(), from_addr);
1270 } 1270 }
1271 break; 1271 break;
1369 } 1369 }
1370 #endif 1370 #endif
1371 __ verify_oop(dest->as_register()); 1371 __ verify_oop(dest->as_register());
1372 } else if (type == T_ADDRESS && addr->disp() == oopDesc::klass_offset_in_bytes()) { 1372 } else if (type == T_ADDRESS && addr->disp() == oopDesc::klass_offset_in_bytes()) {
1373 #ifdef _LP64 1373 #ifdef _LP64
1374 if (UseCompressedKlassPointers) { 1374 if (UseCompressedClassPointers) {
1375 __ decode_klass_not_null(dest->as_register()); 1375 __ decode_klass_not_null(dest->as_register());
1376 } 1376 }
1377 #endif 1377 #endif
1378 } 1378 }
1379 } 1379 }
1714 if (obj == k_RInfo) { 1714 if (obj == k_RInfo) {
1715 k_RInfo = dst; 1715 k_RInfo = dst;
1716 } else if (obj == klass_RInfo) { 1716 } else if (obj == klass_RInfo) {
1717 klass_RInfo = dst; 1717 klass_RInfo = dst;
1718 } 1718 }
1719 if (k->is_loaded() && !UseCompressedKlassPointers) { 1719 if (k->is_loaded() && !UseCompressedClassPointers) {
1720 select_different_registers(obj, dst, k_RInfo, klass_RInfo); 1720 select_different_registers(obj, dst, k_RInfo, klass_RInfo);
1721 } else { 1721 } else {
1722 Rtmp1 = op->tmp3()->as_register(); 1722 Rtmp1 = op->tmp3()->as_register();
1723 select_different_registers(obj, dst, k_RInfo, klass_RInfo, Rtmp1); 1723 select_different_registers(obj, dst, k_RInfo, klass_RInfo, Rtmp1);
1724 } 1724 }
1752 1752
1753 if (op->fast_check()) { 1753 if (op->fast_check()) {
1754 // get object class 1754 // get object class
1755 // not a safepoint as obj null check happens earlier 1755 // not a safepoint as obj null check happens earlier
1756 #ifdef _LP64 1756 #ifdef _LP64
1757 if (UseCompressedKlassPointers) { 1757 if (UseCompressedClassPointers) {
1758 __ load_klass(Rtmp1, obj); 1758 __ load_klass(Rtmp1, obj);
1759 __ cmpptr(k_RInfo, Rtmp1); 1759 __ cmpptr(k_RInfo, Rtmp1);
1760 } else { 1760 } else {
1761 __ cmpptr(k_RInfo, Address(obj, oopDesc::klass_offset_in_bytes())); 1761 __ cmpptr(k_RInfo, Address(obj, oopDesc::klass_offset_in_bytes()));
1762 } 1762 }
3292 3292
3293 if (flags & LIR_OpArrayCopy::type_check) { 3293 if (flags & LIR_OpArrayCopy::type_check) {
3294 // We don't know the array types are compatible 3294 // We don't know the array types are compatible
3295 if (basic_type != T_OBJECT) { 3295 if (basic_type != T_OBJECT) {
3296 // Simple test for basic type arrays 3296 // Simple test for basic type arrays
3297 if (UseCompressedKlassPointers) { 3297 if (UseCompressedClassPointers) {
3298 __ movl(tmp, src_klass_addr); 3298 __ movl(tmp, src_klass_addr);
3299 __ cmpl(tmp, dst_klass_addr); 3299 __ cmpl(tmp, dst_klass_addr);
3300 } else { 3300 } else {
3301 __ movptr(tmp, src_klass_addr); 3301 __ movptr(tmp, src_klass_addr);
3302 __ cmpptr(tmp, dst_klass_addr); 3302 __ cmpptr(tmp, dst_klass_addr);
3454 // subtype which we can't check or src is the same array as dst 3454 // subtype which we can't check or src is the same array as dst
3455 // but not necessarily exactly of type default_type. 3455 // but not necessarily exactly of type default_type.
3456 Label known_ok, halt; 3456 Label known_ok, halt;
3457 __ mov_metadata(tmp, default_type->constant_encoding()); 3457 __ mov_metadata(tmp, default_type->constant_encoding());
3458 #ifdef _LP64 3458 #ifdef _LP64
3459 if (UseCompressedKlassPointers) { 3459 if (UseCompressedClassPointers) {
3460 __ encode_klass_not_null(tmp); 3460 __ encode_klass_not_null(tmp);
3461 } 3461 }
3462 #endif 3462 #endif
3463 3463
3464 if (basic_type != T_OBJECT) { 3464 if (basic_type != T_OBJECT) {
3465 3465
3466 if (UseCompressedKlassPointers) __ cmpl(tmp, dst_klass_addr); 3466 if (UseCompressedClassPointers) __ cmpl(tmp, dst_klass_addr);
3467 else __ cmpptr(tmp, dst_klass_addr); 3467 else __ cmpptr(tmp, dst_klass_addr);
3468 __ jcc(Assembler::notEqual, halt); 3468 __ jcc(Assembler::notEqual, halt);
3469 if (UseCompressedKlassPointers) __ cmpl(tmp, src_klass_addr); 3469 if (UseCompressedClassPointers) __ cmpl(tmp, src_klass_addr);
3470 else __ cmpptr(tmp, src_klass_addr); 3470 else __ cmpptr(tmp, src_klass_addr);
3471 __ jcc(Assembler::equal, known_ok); 3471 __ jcc(Assembler::equal, known_ok);
3472 } else { 3472 } else {
3473 if (UseCompressedKlassPointers) __ cmpl(tmp, dst_klass_addr); 3473 if (UseCompressedClassPointers) __ cmpl(tmp, dst_klass_addr);
3474 else __ cmpptr(tmp, dst_klass_addr); 3474 else __ cmpptr(tmp, dst_klass_addr);
3475 __ jcc(Assembler::equal, known_ok); 3475 __ jcc(Assembler::equal, known_ok);
3476 __ cmpptr(src, dst); 3476 __ cmpptr(src, dst);
3477 __ jcc(Assembler::equal, known_ok); 3477 __ jcc(Assembler::equal, known_ok);
3478 } 3478 }