blob: 825541c0ea34b8889ec20371d14ffa162e322c12 [file] [log] [blame]
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.runtime;
/** Encapsulates the BasicType enum in globalDefinitions.hpp in the
VM. */
public class BasicType {
public static final int tBoolean = 4;
public static final int tChar = 5;
public static final int tFloat = 6;
public static final int tDouble = 7;
public static final int tByte = 8;
public static final int tShort = 9;
public static final int tInt = 10;
public static final int tLong = 11;
public static final int tObject = 12;
public static final int tArray = 13;
public static final int tVoid = 14;
public static final int tAddress = 15;
public static final int tConflict = 16;
public static final int tIllegal = 99;
public static final BasicType T_BOOLEAN = new BasicType(tBoolean);
public static final BasicType T_CHAR = new BasicType(tChar);
public static final BasicType T_FLOAT = new BasicType(tFloat);
public static final BasicType T_DOUBLE = new BasicType(tDouble);
public static final BasicType T_BYTE = new BasicType(tByte);
public static final BasicType T_SHORT = new BasicType(tShort);
public static final BasicType T_INT = new BasicType(tInt);
public static final BasicType T_LONG = new BasicType(tLong);
public static final BasicType T_OBJECT = new BasicType(tObject);
public static final BasicType T_ARRAY = new BasicType(tArray);
public static final BasicType T_VOID = new BasicType(tVoid);
public static final BasicType T_ADDRESS = new BasicType(tAddress);
public static final BasicType T_CONFLICT = new BasicType(tConflict);
public static final BasicType T_ILLEGAL = new BasicType(tIllegal);
public static int getTBoolean() {
return tBoolean;
}
public static int getTChar() {
return tChar;
}
public static int getTFloat() {
return tFloat;
}
public static int getTDouble() {
return tDouble;
}
public static int getTByte() {
return tByte;
}
public static int getTShort() {
return tShort;
}
public static int getTInt() {
return tInt;
}
public static int getTLong() {
return tLong;
}
public static int getTObject() {
return tObject;
}
public static int getTArray() {
return tArray;
}
public static int getTVoid() {
return tVoid;
}
public static int getTAddress() {
return tAddress;
}
/** For stack value type with conflicting contents */
public static int getTConflict() {
return tConflict;
}
public static int getTIllegal() {
return tIllegal;
}
public static BasicType charToBasicType(char c) {
switch( c ) {
case 'B': return T_BYTE;
case 'C': return T_CHAR;
case 'D': return T_DOUBLE;
case 'F': return T_FLOAT;
case 'I': return T_INT;
case 'J': return T_LONG;
case 'S': return T_SHORT;
case 'Z': return T_BOOLEAN;
case 'V': return T_VOID;
case 'L': return T_OBJECT;
case '[': return T_ARRAY;
}
return T_ILLEGAL;
}
public static int charToType(char c) {
return charToBasicType(c).getType();
}
public int getType() {
return type;
}
//-- Internals only below this point
private BasicType(int type) {
this.type = type;
}
private int type;
}