equal
deleted
inserted
replaced
2410 // TOP_IJAVA_FRAME_ABI. |
2410 // TOP_IJAVA_FRAME_ABI. |
2411 // FIXME: assert that we really have a TOP_IJAVA_FRAME here! |
2411 // FIXME: assert that we really have a TOP_IJAVA_FRAME here! |
2412 #ifdef CC_INTERP |
2412 #ifdef CC_INTERP |
2413 ld(tmp1/*pc*/, _top_ijava_frame_abi(frame_manager_lr), sp); |
2413 ld(tmp1/*pc*/, _top_ijava_frame_abi(frame_manager_lr), sp); |
2414 #else |
2414 #else |
2415 Unimplemented(); |
2415 address entry = pc(); |
|
2416 load_const_optimized(tmp1, entry); |
2416 #endif |
2417 #endif |
2417 |
2418 |
2418 set_last_Java_frame(/*sp=*/sp, /*pc=*/tmp1); |
2419 set_last_Java_frame(/*sp=*/sp, /*pc=*/tmp1); |
2419 } |
2420 } |
2420 |
2421 |
2467 if (UseCompressedClassPointers) { |
2468 if (UseCompressedClassPointers) { |
2468 encode_klass_not_null(ck, klass); |
2469 encode_klass_not_null(ck, klass); |
2469 stw(ck, oopDesc::klass_offset_in_bytes(), dst_oop); |
2470 stw(ck, oopDesc::klass_offset_in_bytes(), dst_oop); |
2470 } else { |
2471 } else { |
2471 std(klass, oopDesc::klass_offset_in_bytes(), dst_oop); |
2472 std(klass, oopDesc::klass_offset_in_bytes(), dst_oop); |
|
2473 } |
|
2474 } |
|
2475 |
|
2476 void MacroAssembler::store_klass_gap(Register dst_oop, Register val) { |
|
2477 if (UseCompressedClassPointers) { |
|
2478 if (val == noreg) { |
|
2479 val = R0; |
|
2480 li(val, 0); |
|
2481 } |
|
2482 stw(val, oopDesc::klass_gap_offset_in_bytes(), dst_oop); // klass gap if compressed |
2472 } |
2483 } |
2473 } |
2484 } |
2474 |
2485 |
2475 int MacroAssembler::instr_size_for_decode_klass_not_null() { |
2486 int MacroAssembler::instr_size_for_decode_klass_not_null() { |
2476 if (!UseCompressedClassPointers) return 0; |
2487 if (!UseCompressedClassPointers) return 0; |
3141 } |
3152 } |
3142 BLOCK_COMMENT("} zap memory region"); |
3153 BLOCK_COMMENT("} zap memory region"); |
3143 } |
3154 } |
3144 |
3155 |
3145 #endif // !PRODUCT |
3156 #endif // !PRODUCT |
|
3157 |
|
3158 SkipIfEqualZero::SkipIfEqualZero(MacroAssembler* masm, Register temp, const bool* flag_addr) : _masm(masm), _label() { |
|
3159 int simm16_offset = masm->load_const_optimized(temp, (address)flag_addr, R0, true); |
|
3160 assert(sizeof(bool) == 1, "PowerPC ABI"); |
|
3161 masm->lbz(temp, simm16_offset, temp); |
|
3162 masm->cmpwi(CCR0, temp, 0); |
|
3163 masm->beq(CCR0, _label); |
|
3164 } |
|
3165 |
|
3166 SkipIfEqualZero::~SkipIfEqualZero() { |
|
3167 _masm->bind(_label); |
|
3168 } |