* src/vm/jit/powerpc64/linux/.cvsignore: New file.
[cacao.git] / src / vm / field.h
index cd483587e06aae3a1de6ece3b9f567c35bc0b154..000b5ae2a4dbe813986998814a9235acb058b069 100644 (file)
@@ -1,9 +1,9 @@
 /* src/vm/field.h - field functions header
 
-   Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-   R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-   C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-   Institut f. Computersprachen - TU Wien
+   Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+   C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
+   E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
+   J. Wenninger, Institut f. Computersprachen - TU Wien
 
    This file is part of CACAO.
 
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
 
-   Contact: cacao@complang.tuwien.ac.at
+   Contact: cacao@cacaojvm.org
 
    Authors: Reinhard Grafl
 
    Changes: Christian Thalinger
 
-   $Id: field.h 4335 2006-01-22 14:39:28Z twisti $
+   $Id: field.h 4758 2006-04-12 17:51:10Z edwin $
 */
 
 
 #ifndef _FIELD_H
 #define _FIELD_H
 
-/* forward typedefs ***********************************************************/
-
-typedef struct fieldinfo fieldinfo; 
-
 #include "config.h"
 #include "vm/types.h"
 
@@ -46,12 +42,20 @@ typedef struct fieldinfo fieldinfo;
 #include "vm/utf8.h"
 #include "vm/references.h"
 #include "vm/descriptor.h"
-#include "vm/jit/inline/parseXTA.h"
 
 
 /* fieldinfo ******************************************************************/
 
 struct fieldinfo {           /* field of a class                                 */
+
+       /* CAUTION: The first field must be a pointer that is never the same      */
+       /*          value as CLASSREF_PSEUDO_VFTBL! This is used to check whether */
+       /*          a constant_FMIref has been resolved.                          */
+
+       classinfo *class;     /* needed by typechecker. Could be optimized        */
+                             /* away by using constant_FMIref instead of         */
+                             /* fieldinfo throughout the compiler.               */
+
        s4         flags;     /* ACC flags                                        */
        s4         type;      /* basic data type                                  */
        utf       *name;      /* name of field                                    */
@@ -61,12 +65,6 @@ struct fieldinfo {         /* field of a class                                 */
        s4         offset;    /* offset from start of object (instance variables) */
 
        imm_union  value;     /* storage for static values (class variables)      */
-
-       classinfo *class;     /* needed by typechecker. Could be optimized        */
-                             /* away by using constant_FMIref instead of         */
-                             /* fieldinfo throughout the compiler.               */
-
-       xtafldinfo *xta;
 };
 
 
@@ -78,6 +76,8 @@ void field_free(fieldinfo *f);
 void field_printflags(fieldinfo *f);
 void field_print(fieldinfo *f);
 void field_println(fieldinfo *f);
+void field_fieldref_print(constant_FMIref *fr);
+void field_fieldref_println(constant_FMIref *fr);
 #endif
 
 #endif /* _FIELD_H */