Mercurial > hg > graal-jvmci-8
comparison src/cpu/ppc/vm/macroAssembler_ppc.cpp @ 23862:aa6d8e03b258
Merge
author | asaha |
---|---|
date | Fri, 05 Feb 2016 23:10:25 -0800 |
parents | f87db3f01e3f |
children |
comparison
equal
deleted
inserted
replaced
23858:737b321e6f0e | 23862:aa6d8e03b258 |
---|---|
590 // Assert that we can identify the emitted call/jump. | 590 // Assert that we can identify the emitted call/jump. |
591 assert(is_bxx64_patchable_variant2_at((address)start_pc, link), | 591 assert(is_bxx64_patchable_variant2_at((address)start_pc, link), |
592 "can't identify emitted call"); | 592 "can't identify emitted call"); |
593 } else { | 593 } else { |
594 // variant 1: | 594 // variant 1: |
595 #if defined(ABI_ELFv2) | |
596 nop(); | |
597 calculate_address_from_global_toc(R12, dest, true, true, false); | |
598 mtctr(R12); | |
599 nop(); | |
600 nop(); | |
601 #else | |
602 mr(R0, R11); // spill R11 -> R0. | 595 mr(R0, R11); // spill R11 -> R0. |
603 | 596 |
604 // Load the destination address into CTR, | 597 // Load the destination address into CTR, |
605 // calculate destination relative to global toc. | 598 // calculate destination relative to global toc. |
606 calculate_address_from_global_toc(R11, dest, true, true, false); | 599 calculate_address_from_global_toc(R11, dest, true, true, false); |
607 | 600 |
608 mtctr(R11); | 601 mtctr(R11); |
609 mr(R11, R0); // spill R11 <- R0. | 602 mr(R11, R0); // spill R11 <- R0. |
610 nop(); | 603 nop(); |
611 #endif | |
612 | 604 |
613 // do the call/jump | 605 // do the call/jump |
614 if (link) { | 606 if (link) { |
615 bctrl(); | 607 bctrl(); |
616 } else{ | 608 } else{ |