-/* 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 */
* c-basic-offset: 4
* tab-width: 4
* End:
+ * vim:noexpandtab:sw=4:ts=4:
*/