hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
changeset 5055 743f38c6e179
parent 4478 c3a8af0fc6b0
child 5419 f2e8cc8c12ea
equal deleted inserted replaced
5054:6d42dc4dd98c 5055:743f38c6e179
     1 /*
     1 /*
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2010 Sun Microsystems, Inc.  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.
  2913   if (load_receiver) {
  2913   if (load_receiver) {
  2914     __ movl(recv, flags);
  2914     __ movl(recv, flags);
  2915     __ andl(recv, 0xFF);
  2915     __ andl(recv, 0xFF);
  2916     // recv count is 0 based?
  2916     // recv count is 0 based?
  2917     Address recv_addr(rsp, recv, Interpreter::stackElementScale(), -Interpreter::expr_offset_in_bytes(1));
  2917     Address recv_addr(rsp, recv, Interpreter::stackElementScale(), -Interpreter::expr_offset_in_bytes(1));
  2918     if (is_invokedynamic) {
  2918     __ movptr(recv, recv_addr);
  2919       __ lea(recv, recv_addr);
  2919     __ verify_oop(recv);
  2920     } else {
       
  2921       __ movptr(recv, recv_addr);
       
  2922       __ verify_oop(recv);
       
  2923     }
       
  2924   }
  2920   }
  2925 
  2921 
  2926   // do null check if needed
  2922   // do null check if needed
  2927   if (receiver_null_check) {
  2923   if (receiver_null_check) {
  2928     __ null_check(recv);
  2924     __ null_check(recv);