* src/vm/jit/i386/asmpart.S (asm_replacement_out): Added pv.
[cacao.git] / src / vm / jit / tools / genoffsets.c
index db8baa00f4885cc63ef5459556d8fa7f98167d02..f738b46bc60205268c7cc34b9364c861a7178124 100644 (file)
@@ -1,9 +1,9 @@
-/* vm/jit/tools/genoffsets.c - generate asmpart offsets of structures
+/* src/vm/jit/tools/genoffsets.c - generate asmpart offsets of structures
 
-   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: Christian Thalinger
 
-   Changes:
+   Changes: Edwin Steiner
 
-   $Id: genoffsets.c 2181 2005-04-01 16:53:33Z edwin $
+   $Id: genoffsets.c 4643 2006-03-16 18:38:42Z edwin $
 
 */
 
 
+#include "config.h"
+
 #include <stdio.h>
 
-#include "vm/global.h"
+#include "vm/types.h"
+
 #include "mm/memory.h"
+#include "vm/class.h"
+#include "vm/global.h"
 #include "vm/linker.h"
 #include "vm/method.h"
-#include "vm/class.h"
+#include "vm/vm.h"
 #include "vm/jit/asmpart.h"
+#include "vm/jit/stacktrace.h"
+#include "vm/jit/replace.h"
 
 
 int main(int argc, char **argv)
 {
-       printf("/* This file is machine generated, don't edit it !*/\n\n"); 
+       printf("/* This file is machine generated, don't edit it! */\n\n");
 
-       printf("#define offobjvftbl           %3d\n", (s4) OFFSET(java_objectheader, vftbl));
-       printf("#define offarraysize          %3d\n", (s4) OFFSET(java_arrayheader, size));
-       printf("#define offobjarrdata         %3d\n\n", (s4) OFFSET(java_objectarray, data[0]));
+    printf("/* define some sizeof()'s */\n\n");
 
-       printf("#define offbaseval            %3d\n", (s4) OFFSET(vftbl_t, baseval));
-       printf("#define offdiffval            %3d\n\n", (s4) OFFSET(vftbl_t, diffval));
+       printf("#define sizevmarg                  %3d\n", (s4) sizeof(vm_arg));
+       printf("#define sizestackframeinfo         %3d\n", (s4) sizeof(stackframeinfo));
+       printf("#define sizeexecutionstate         %3d\n", (s4) sizeof(executionstate));
 
-       printf("#define offclass              %3d\n\n", (s4) OFFSET(vftbl_t, class));
+    printf("\n\n/* define some offsets */\n\n");
 
-       printf("#define offclassvftbl         %3d\n", (s4) OFFSET(classinfo, vftbl));
-       printf("#define offclassinit          %3d\n", (s4) OFFSET(classinfo, initialized));
-       printf("#define offclassloaded        %3d\n", (s4) OFFSET(classinfo, loaded));
-       printf("#define offclasslinked        %3d\n\n", (s4) OFFSET(classinfo, linked));
+       printf("#define offobjvftbl                %3d\n", (s4) OFFSET(java_objectheader, vftbl));
+       printf("\n\n");
 
-       printf("#define offjniitemtype        %3d\n", (s4) OFFSET(jni_callblock, itemtype));
-       printf("#define offjniitem            %3d\n", (s4) OFFSET(jni_callblock, item));
-       printf("#define sizejniblock          %3d\n\n", (s4) sizeof(jni_callblock));
+       printf("/* vftbl_t */\n\n");
+       printf("#define offbaseval                 %3d\n", (s4) OFFSET(vftbl_t, baseval));
+       printf("#define offdiffval                 %3d\n", (s4) OFFSET(vftbl_t, diffval));
+       printf("\n\n");
 
-       printf("#define offclassmethodinfo    %3d\n\n", (s4) OFFSET(methodinfo,class));
+       printf("/* classinfo */\n\n");
+       printf("#define offclassvftbl              %3d\n", (s4) OFFSET(classinfo, vftbl));
+       printf("\n\n");
 
-       printf("#define offmethodnative       %3d\n", (s4) OFFSET(native_stackframeinfo,method));
-       /*      printf("#define offreturnfromnative %3d\n", (s4) OFFSET(native_stackframeinfo,returnFromNative));
-               printf("#define offaddrreturnfromnative %3d\n", (s4) OFFSET(native_stackframeinfo,addrReturnFromNative));
-               printf("#define offprevnative %3d\n", (s4) OFFSET(native_stackframeinfo,prev));
-               printf("#define offnextnative %3d\n", (s4) OFFSET(native_stackframeinfo,next));*/
+       printf("#define offvmargtype               %3d\n", (s4) OFFSET(vm_arg, type));
+       printf("#define offvmargdata               %3d\n", (s4) OFFSET(vm_arg, data));
+       printf("\n\n");
 
-       printf("\n");
+       printf("#define offcast_super_baseval      %3d\n", (s4) OFFSET(castinfo, super_baseval));
+       printf("#define offcast_super_diffval      %3d\n", (s4) OFFSET(castinfo, super_diffval));
+       printf("#define offcast_sub_baseval        %3d\n", (s4) OFFSET(castinfo, sub_baseval));
 
-       printf("#define offcast_super_baseval %3d\n", (s4) OFFSET(castinfo, super_baseval));
-       printf("#define offcast_super_diffval %3d\n", (s4) OFFSET(castinfo, super_diffval));
-       printf("#define offcast_sub_baseval   %3d\n", (s4) OFFSET(castinfo, sub_baseval));
+       printf("#define offes_pc                   %3d\n", (s4) OFFSET(executionstate, pc));
+       printf("#define offes_sp                   %3d\n", (s4) OFFSET(executionstate, sp));
+       printf("#define offes_pv                   %3d\n", (s4) OFFSET(executionstate, pv));
+       printf("#define offes_intregs              %3d\n", (s4) OFFSET(executionstate, intregs));
+       printf("#define offes_fltregs              %3d\n", (s4) OFFSET(executionstate, fltregs));
 
        /* everything is ok */
 
@@ -96,6 +105,7 @@ int main(int argc, char **argv)
  * c-basic-offset: 4
  * tab-width: 4
  * End:
+ * vim:noexpandtab:sw=4:ts=4:
  */