001 /* 002 * This file is part of the Jikes RVM project (http://jikesrvm.org). 003 * 004 * This file is licensed to You under the Eclipse Public License (EPL); 005 * You may not use this file except in compliance with the License. You 006 * may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/eclipse-1.0.php 009 * 010 * See the COPYRIGHT.txt file distributed with this work for information 011 * regarding copyright ownership. 012 */ 013 package org.jikesrvm; 014 015 import org.jikesrvm.objectmodel.TIBLayoutConstants; 016 import org.jikesrvm.objectmodel.ThinLockConstants; 017 018 /** 019 * Constants describing VM object, stack, and register characteristics. 020 * Some of these constants are architecture-specific 021 * and some are (at the moment) architecture-neutral. 022 */ 023 public interface Constants extends ThinLockConstants, // architecture-neutral 024 TIBLayoutConstants, // architecture-neutral 025 HeapLayoutConstants, // architecture-neutral 026 SizeConstants // 'semi-'architecture-neutral 027 { 028 /** 029 * For assertion checking things that should never happen. 030 */ 031 boolean NOT_REACHED = false; 032 033 /* 034 * Reflection uses an integer return from a function which logically 035 * returns a triple. The values are packed in the integer return value 036 * by the following masks. 037 */ 038 039 int REFLECTION_GPRS_BITS = 5; 040 int REFLECTION_GPRS_MASK = (1 << REFLECTION_GPRS_BITS) - 1; 041 int REFLECTION_FPRS_BITS = 5; 042 int REFLECTION_FPRS_MASK = (1 << REFLECTION_FPRS_BITS) - 1; 043 044 }