487 void empty_FPU_stack();
488
489 void push_IU_state();
490 void pop_IU_state();
491
492 void push_FPU_state();
493 void pop_FPU_state();
494
495 void push_CPU_state();
496 void pop_CPU_state();
497
498 // Round up to a power of two
499 void round_to(Register reg, int modulus);
500
501 // Callee saved registers handling
502 void push_callee_saved_registers();
503 void pop_callee_saved_registers();
504
505 // allocation
506 void eden_allocate(
507 Register obj, // result: pointer to object after successful allocation
508 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
509 int con_size_in_bytes, // object size in bytes if known at compile time
510 Register t1, // temp register
511 Label& slow_case // continuation point if fast allocation fails
512 );
513 void tlab_allocate(
514 Register obj, // result: pointer to object after successful allocation
515 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
516 int con_size_in_bytes, // object size in bytes if known at compile time
517 Register t1, // temp register
518 Register t2, // temp register
519 Label& slow_case // continuation point if fast allocation fails
520 );
521 void zero_memory(Register address, Register length_in_bytes, int offset_in_bytes, Register temp);
522
523 void incr_allocated_bytes(Register thread,
524 Register var_size_in_bytes, int con_size_in_bytes,
525 Register t1 = noreg);
526
527 // interface method calling
528 void lookup_interface_method(Register recv_klass,
529 Register intf_klass,
530 RegisterOrConstant itable_index,
531 Register method_result,
532 Register scan_temp,
533 Label& no_such_interface,
534 bool return_method = true);
535
536 // virtual method calling
537 void lookup_virtual_method(Register recv_klass,
538 RegisterOrConstant vtable_index,
539 Register method_result);
540
541 // Test sub_klass against super_klass, with fast and slow paths.
542
543 // The fast path produces a tri-state answer: yes / no / maybe-slow.
544 // One of the three labels can be NULL, meaning take the fall-through.
545 // If super_check_offset is -1, the value is loaded up from super_klass.
|
487 void empty_FPU_stack();
488
489 void push_IU_state();
490 void pop_IU_state();
491
492 void push_FPU_state();
493 void pop_FPU_state();
494
495 void push_CPU_state();
496 void pop_CPU_state();
497
498 // Round up to a power of two
499 void round_to(Register reg, int modulus);
500
501 // Callee saved registers handling
502 void push_callee_saved_registers();
503 void pop_callee_saved_registers();
504
505 // allocation
506 void eden_allocate(
507 Register thread, // Current thread
508 Register obj, // result: pointer to object after successful allocation
509 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
510 int con_size_in_bytes, // object size in bytes if known at compile time
511 Register t1, // temp register
512 Label& slow_case // continuation point if fast allocation fails
513 );
514 void tlab_allocate(
515 Register thread, // Current thread
516 Register obj, // result: pointer to object after successful allocation
517 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
518 int con_size_in_bytes, // object size in bytes if known at compile time
519 Register t1, // temp register
520 Register t2, // temp register
521 Label& slow_case // continuation point if fast allocation fails
522 );
523 void zero_memory(Register address, Register length_in_bytes, int offset_in_bytes, Register temp);
524
525 // interface method calling
526 void lookup_interface_method(Register recv_klass,
527 Register intf_klass,
528 RegisterOrConstant itable_index,
529 Register method_result,
530 Register scan_temp,
531 Label& no_such_interface,
532 bool return_method = true);
533
534 // virtual method calling
535 void lookup_virtual_method(Register recv_klass,
536 RegisterOrConstant vtable_index,
537 Register method_result);
538
539 // Test sub_klass against super_klass, with fast and slow paths.
540
541 // The fast path produces a tri-state answer: yes / no / maybe-slow.
542 // One of the three labels can be NULL, meaning take the fall-through.
543 // If super_check_offset is -1, the value is loaded up from super_klass.
|