2976 __ subptr(rsp, (framesize-4) << LogBytesPerInt); // prolog |
2976 __ subptr(rsp, (framesize-4) << LogBytesPerInt); // prolog |
2977 |
2977 |
2978 int frame_complete = __ pc() - start; |
2978 int frame_complete = __ pc() - start; |
2979 |
2979 |
2980 // Set up last_Java_sp and last_Java_fp |
2980 // Set up last_Java_sp and last_Java_fp |
2981 __ set_last_Java_frame(rsp, rbp, NULL); |
2981 address the_pc = __ pc(); |
|
2982 __ set_last_Java_frame(rsp, rbp, the_pc); |
|
2983 __ andptr(rsp, -(StackAlignmentInBytes)); // Align stack |
2982 |
2984 |
2983 // Call runtime |
2985 // Call runtime |
2984 if (arg1 != noreg) { |
2986 if (arg1 != noreg) { |
2985 assert(arg2 != c_rarg1, "clobbered"); |
2987 assert(arg2 != c_rarg1, "clobbered"); |
2986 __ movptr(c_rarg1, arg1); |
2988 __ movptr(c_rarg1, arg1); |
2995 // Generate oop map |
2997 // Generate oop map |
2996 OopMap* map = new OopMap(framesize, 0); |
2998 OopMap* map = new OopMap(framesize, 0); |
2997 |
2999 |
2998 oop_maps->add_gc_map(__ pc() - start, map); |
3000 oop_maps->add_gc_map(__ pc() - start, map); |
2999 |
3001 |
3000 __ reset_last_Java_frame(true, false); |
3002 __ reset_last_Java_frame(true, true); |
3001 |
3003 |
3002 __ leave(); // required for proper stackwalking of RuntimeStub frame |
3004 __ leave(); // required for proper stackwalking of RuntimeStub frame |
3003 |
3005 |
3004 // check for pending exceptions |
3006 // check for pending exceptions |
3005 #ifdef ASSERT |
3007 #ifdef ASSERT |