hotspot/src/cpu/x86/vm/methodHandles_x86.cpp
changeset 11565 713a0398ca58
parent 11487 f45d945367d4
child 11571 23f825a42a85
equal deleted inserted replaced
11564:72cf4575309b 11565:713a0398ca58
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   988     ShouldNotReachHere();
   988     ShouldNotReachHere();
   989   }
   989   }
   990   BLOCK_COMMENT("} move_return_value");
   990   BLOCK_COMMENT("} move_return_value");
   991 }
   991 }
   992 
   992 
       
   993 #ifdef ASSERT
       
   994 #define DESCRIBE_RICOCHET_OFFSET(rf, name) \
       
   995   values.describe(frame_no, (intptr_t *) (((uintptr_t)rf) + MethodHandles::RicochetFrame::name##_offset_in_bytes()), #name)
       
   996 
       
   997 void MethodHandles::RicochetFrame::describe(const frame* fr, FrameValues& values, int frame_no)  {
       
   998     address bp = (address) fr->fp();
       
   999     RicochetFrame* rf = (RicochetFrame*)(bp - sender_link_offset_in_bytes());
       
  1000 
       
  1001     // ricochet slots
       
  1002     DESCRIBE_RICOCHET_OFFSET(rf, exact_sender_sp);
       
  1003     DESCRIBE_RICOCHET_OFFSET(rf, conversion);
       
  1004     DESCRIBE_RICOCHET_OFFSET(rf, saved_args_base);
       
  1005     DESCRIBE_RICOCHET_OFFSET(rf, saved_args_layout);
       
  1006     DESCRIBE_RICOCHET_OFFSET(rf, saved_target);
       
  1007     DESCRIBE_RICOCHET_OFFSET(rf, continuation);
       
  1008 
       
  1009     // relevant ricochet targets (in caller frame)
       
  1010     values.describe(-1, rf->saved_args_base(),  err_msg("*saved_args_base for #%d", frame_no));
       
  1011 }
       
  1012 #endif // ASSERT
   993 
  1013 
   994 #ifndef PRODUCT
  1014 #ifndef PRODUCT
   995 extern "C" void print_method_handle(oop mh);
  1015 extern "C" void print_method_handle(oop mh);
   996 void trace_method_handle_stub(const char* adaptername,
  1016 void trace_method_handle_stub(const char* adaptername,
   997                               oop mh,
  1017                               oop mh,