< prev index next >

src/share/vm/runtime/sharedRuntime.cpp

Print this page




2808           new_in_regs[argcnt+1].set_bad();
2809           argcnt++;
2810           break;
2811         default:
2812           // No conversion needed.
2813           new_in_sig_bt[argcnt] = bt;
2814           new_in_regs[argcnt]   = reg;
2815           break;
2816       }
2817     }
2818     assert(argcnt == i2l_argcnt, "must match");
2819 
2820     in_regs = new_in_regs;
2821     in_sig_bt = new_in_sig_bt;
2822     in_args_count = i2l_argcnt;
2823   } else {
2824     assert(0, "This should not be needed on this platform");
2825   }
2826 }
2827 
















2828 // -------------------------------------------------------------------------
2829 // Java-Java calling convention
2830 // (what you use when Java calls Java)
2831 
2832 //------------------------------name_for_receiver----------------------------------
2833 // For a given signature, return the VMReg for parameter 0.
2834 VMReg SharedRuntime::name_for_receiver() {
2835   VMRegPair regs;
2836   BasicType sig_bt = T_OBJECT;
2837   (void) java_calling_convention(&sig_bt, &regs, 1, true);
2838   // Return argument 0 register.  In the LP64 build pointers
2839   // take 2 registers, but the VM wants only the 'main' name.
2840   return regs.first();
2841 }
2842 
2843 VMRegPair *SharedRuntime::find_callee_arguments(Symbol* sig, bool has_receiver, bool has_appendix, int* arg_size) {
2844   // This method is returning a data structure allocating as a
2845   // ResourceObject, so do not put any ResourceMarks in here.
2846   char *s = sig->as_C_string();
2847   int len = (int)strlen(s);




2808           new_in_regs[argcnt+1].set_bad();
2809           argcnt++;
2810           break;
2811         default:
2812           // No conversion needed.
2813           new_in_sig_bt[argcnt] = bt;
2814           new_in_regs[argcnt]   = reg;
2815           break;
2816       }
2817     }
2818     assert(argcnt == i2l_argcnt, "must match");
2819 
2820     in_regs = new_in_regs;
2821     in_sig_bt = new_in_sig_bt;
2822     in_args_count = i2l_argcnt;
2823   } else {
2824     assert(0, "This should not be needed on this platform");
2825   }
2826 }
2827 
2828 JRT_LEAF(oopDesc*, SharedRuntime::pin_object(JavaThread* thread, oopDesc* obj))
2829   assert(Universe::heap()->supports_object_pinning(), "Why we here?");
2830   assert(obj != NULL, "Should not be null");
2831   oop o(obj);
2832   o = Universe::heap()->pin_object(thread, o);
2833   assert(o != NULL, "Should not be null");
2834   return o;
2835 JRT_END
2836 
2837 JRT_LEAF(void, SharedRuntime::unpin_object(JavaThread* thread, oopDesc* obj))
2838   assert(Universe::heap()->supports_object_pinning(), "Why we here?");
2839   assert(obj != NULL, "Should not be null");
2840   oop o(obj);
2841   Universe::heap()->unpin_object(thread, o);
2842 JRT_END
2843 
2844 // -------------------------------------------------------------------------
2845 // Java-Java calling convention
2846 // (what you use when Java calls Java)
2847 
2848 //------------------------------name_for_receiver----------------------------------
2849 // For a given signature, return the VMReg for parameter 0.
2850 VMReg SharedRuntime::name_for_receiver() {
2851   VMRegPair regs;
2852   BasicType sig_bt = T_OBJECT;
2853   (void) java_calling_convention(&sig_bt, &regs, 1, true);
2854   // Return argument 0 register.  In the LP64 build pointers
2855   // take 2 registers, but the VM wants only the 'main' name.
2856   return regs.first();
2857 }
2858 
2859 VMRegPair *SharedRuntime::find_callee_arguments(Symbol* sig, bool has_receiver, bool has_appendix, int* arg_size) {
2860   // This method is returning a data structure allocating as a
2861   // ResourceObject, so do not put any ResourceMarks in here.
2862   char *s = sig->as_C_string();
2863   int len = (int)strlen(s);


< prev index next >