src/cpu/ppc/vm/sharedRuntime_ppc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/cpu/ppc/vm

src/cpu/ppc/vm/sharedRuntime_ppc.cpp

Print this page




 465           __ lfd(as_FloatRegister(reg_num), offset, R1_SP);
 466         break;
 467       }
 468       case RegisterSaver::special_reg: {
 469         // Special registers don't hold a result.
 470         break;
 471       }
 472       default:
 473         ShouldNotReachHere();
 474     }
 475     offset += reg_size;
 476   }
 477 }
 478 
 479 // Is vector's size (in bytes) bigger than a size saved by default?
 480 bool SharedRuntime::is_wide_vector(int size) {
 481   // Note, MaxVectorSize == 8 on PPC64.
 482   assert(size <= 8, "%d bytes vectors are not supported", size);
 483   return size > 8;
 484 }












 485 #ifdef COMPILER2
 486 static int reg2slot(VMReg r) {
 487   return r->reg2stack() + SharedRuntime::out_preserve_stack_slots();
 488 }
 489 
 490 static int reg2offset(VMReg r) {
 491   return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) * VMRegImpl::stack_slot_size;
 492 }
 493 #endif
 494 
 495 // ---------------------------------------------------------------------------
 496 // Read the array of BasicTypes from a signature, and compute where the
 497 // arguments should go. Values in the VMRegPair regs array refer to 4-byte
 498 // quantities. Values less than VMRegImpl::stack0 are registers, those above
 499 // refer to 4-byte stack slots. All stack slots are based off of the stack pointer
 500 // as framesizes are fixed.
 501 // VMRegImpl::stack0 refers to the first slot 0(sp).
 502 // and VMRegImpl::stack0+1 refers to the memory word 4-bytes higher. Register
 503 // up to RegisterImpl::number_of_registers) are the 64-bit
 504 // integer registers.




 465           __ lfd(as_FloatRegister(reg_num), offset, R1_SP);
 466         break;
 467       }
 468       case RegisterSaver::special_reg: {
 469         // Special registers don't hold a result.
 470         break;
 471       }
 472       default:
 473         ShouldNotReachHere();
 474     }
 475     offset += reg_size;
 476   }
 477 }
 478 
 479 // Is vector's size (in bytes) bigger than a size saved by default?
 480 bool SharedRuntime::is_wide_vector(int size) {
 481   // Note, MaxVectorSize == 8 on PPC64.
 482   assert(size <= 8, "%d bytes vectors are not supported", size);
 483   return size > 8;
 484 }
 485 
 486 size_t SharedRuntime::trampoline_size() {
 487   return Assembler::load_const_size + 8;
 488 }
 489 
 490 void SharedRuntime::generate_trampoline(MacroAssembler *masm, address destination) {
 491   Register Rtemp = R12;
 492   __ load_const(Rtemp, destination); 
 493   __ mtctr(Rtemp);
 494   __ bctr();
 495 }
 496 
 497 #ifdef COMPILER2
 498 static int reg2slot(VMReg r) {
 499   return r->reg2stack() + SharedRuntime::out_preserve_stack_slots();
 500 }
 501 
 502 static int reg2offset(VMReg r) {
 503   return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) * VMRegImpl::stack_slot_size;
 504 }
 505 #endif
 506 
 507 // ---------------------------------------------------------------------------
 508 // Read the array of BasicTypes from a signature, and compute where the
 509 // arguments should go. Values in the VMRegPair regs array refer to 4-byte
 510 // quantities. Values less than VMRegImpl::stack0 are registers, those above
 511 // refer to 4-byte stack slots. All stack slots are based off of the stack pointer
 512 // as framesizes are fixed.
 513 // VMRegImpl::stack0 refers to the first slot 0(sp).
 514 // and VMRegImpl::stack0+1 refers to the memory word 4-bytes higher. Register
 515 // up to RegisterImpl::number_of_registers) are the 64-bit
 516 // integer registers.


src/cpu/ppc/vm/sharedRuntime_ppc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File