hotspot/src/share/vm/ci/ciMethodHandle.hpp
author coleenp
Mon, 14 Jan 2013 11:01:39 -0500
changeset 15194 a35093d73168
parent 13963 e5b53c306fb5
permissions -rw-r--r--
8006005: Fix constant pool index validation and alignment trap for method parameter reflection Summary: This patch addresses an alignment trap due to the storage format of method parameters data in constMethod. It also adds code to validate constant pool indexes for method parameters data. Reviewed-by: jrose, dholmes Contributed-by: eric.mccorkle@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4567
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     1
/*
13963
e5b53c306fb5 7197424: update copyright year to match last edit in jdk8 hotspot repository
mikael
parents: 13391
diff changeset
     2
 * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
4567
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     4
 *
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     7
 * published by the Free Software Foundation.
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     8
 *
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    13
 * accompanied this code).
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    14
 *
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    18
 *
5547
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 4567
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 4567
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 4567
diff changeset
    21
 * questions.
4567
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    22
 *
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    23
 */
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    24
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    25
#ifndef SHARE_VM_CI_CIMETHODHANDLE_HPP
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    26
#define SHARE_VM_CI_CIMETHODHANDLE_HPP
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    27
13391
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 10973
diff changeset
    28
#include "ci/ciClassList.hpp"
7408
c04a5c989f26 7003125: precompiled.hpp is included when precompiled headers are not used
stefank
parents: 7397
diff changeset
    29
#include "ci/ciInstance.hpp"
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    30
4567
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    31
// ciMethodHandle
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    32
//
8676
9098d4e927e1 7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents: 7408
diff changeset
    33
// The class represents a java.lang.invoke.MethodHandle object.
4567
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    34
class ciMethodHandle : public ciInstance {
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    35
public:
13391
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 10973
diff changeset
    36
  ciMethodHandle(instanceHandle h_i) : ciInstance(h_i) {}
4567
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    37
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    38
  // What kind of ciObject is this?
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    39
  bool is_method_handle() const { return true; }
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    40
13391
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 10973
diff changeset
    41
  ciMethod* get_vmtarget() const;
4567
7fc02fbe5c7a 6893268: additional dynamic language related optimizations in C2
twisti
parents:
diff changeset
    42
};
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    43
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    44
#endif // SHARE_VM_CI_CIMETHODHANDLE_HPP