[kaffe] Jit3 for IA-64
Svante Arvedal
svaar968 at student.liu.se
Fri Mar 14 04:08:02 PST 2003
Hi!
A bit late but here comes the requested ChangeLog entries.
Svante
----- Original Message -----
From: "Dalibor Topic" <robilad at yahoo.com>
To: "Svante Arvedahl" <svaar968 at student.liu.se>; <kaffe at kaffe.org>;
<jim at kaffe.org>; <gbeauchesne at mandrakesoft.com>
Sent: Monday, February 24, 2003 8:46 PM
Subject: Re: [kaffe] Jit3 for IA-64
> Hi Svante,
>
> --- Svante Arvedahl <svaar968 at student.liu.se> wrote:
> > > BTW: any news from the JIT front?
> > Yes, I finished my master's thesis in december where
> > I ported the jit3
> > to IA-64. A patch and my report can be found at
> > http://hem.passagen.se/svaar968/
>
> that's very cool, thanks!
>
> > patch (in config/ia64, somewhere). The patch applies
> > to Gwenole's CVS
> > snapshot from august of 2001.
>
> Could you post a ChangeLog entry for the modified
> files?
>
> cheers,
> dalibor topic
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Tax Center - forms, calculators, tips, more
> http://taxes.yahoo.com/
>
-------------- next part --------------
File: config/ia64/fixme.txt
Change: New file. Accounts things to be fixed in the ia64 jit3 backend.
File: config/ia64/heuristic2/datastructures.c
Change: New file. Primitive functions used in Arvedahl's instruction scheduling heuristic
File: config/ia64/heuristic2/datastructures.h
Change: New file. Datastructures used in Arvedahl's instruction scheduling heuristic. Based on a java implementation by Samuel Sanseri -- sanseri at cs.pdx.edu
File: config/ia64/heuristic2/heuristic2.c
Change: New file. Functions used in Arvedahl's instruction scheduling heuristic.
File: config/ia64/heuristic2/heuristic2.h
Change: New file. Primitive functions used in Arvedahl's instruction scheduling heuristic.
File: config/ia64/heuristic2/heuristic2_defines.h
Change: New file. Primitive functions used in Arvedahl's instruction scheduling heuristic. Based on a java implementation by Samuel Sanseri -- sanseri at cs.pdx.edu
File: config/ia64/heuristic2/heuristic2_macros.h
Change: New file. Macros used in Arvedahl's instruction scheduling heuristic. Based on a java implementation by Samuel Sanseri -- sanseri at cs.pdx.edu
File: config/ia64/heuristic2/ia64_isa.defs
Change: New file. The IA-64 version of the ppc defs file, originally developed by the Flux group at the University of Utah. To be run through mnemonicizer.awk.
File: config/ia64/heuristic2/ia64_isa.h
Change: New file. Macros used in Arvedahl's instruction scheduling heuristic. Produced by the script mnemonicizer.awk.
File: config/ia64/heuristic2/mnemonicizer.awk
Change: New file. The IA-64 version of the ppc mnemonicizer, originally developed by the Flux group at the University of Utah. Interprets the "defs" file ia64_isa.defs, filled with definitions for the IA-64 architecture.
File: config/ia64/heuristic2/schedule.c
Change: New file. Functions used in Arvedahl's instruction scheduling heuristic. Based on a java implementation by Samuel Sanseri -- sanseri at cs.pdx.edu
File: config/ia64/itanium.h
Change: New file. Itanium specific JIT configuration information.
File: config/ia64/jit.h
Change: New file. Common IA-64 JIT configuration information.
File: config/ia64/jit3-ia64.def
Change: New file. IA-64 instruction definitions.
File: config/ia64/jit3-icode.h
Change: New file. Defines the instructions which are present on the ia64.
File: config/ia64/linux/jit-md.c
Change: New file. The functions in this file are ugly hacks used in stack unwinding. They should be replaced by proper stack unwinding. Basically they search the memory for frames they recognize.
File: config/ia64/linux/jit3-md.h
Change: New file. Linux IA64 JIT configuration information.
File: config/ia64/linux/md.h
Change: Added include of "jit3-md.h" when the jit is used (TRANSLATOR is defined).
File: config/ia64/sysdepCallMethod.h
Change: Added support for the stack unwinding hack in ia64/linux/jit-md.c.
File: config/ia64/trampolines.c
Change: New file. Contains the ia64_do_fixup_trampoline used in the jit3 backend.
File: developers/gdbinit1
Change: Added a few gdb debug features.
File: include/jtypes.h.in
Change: Ensures that jword gets the appropriate size depending on size of voidp.
File: kaffe/kaffe/main.c
Change: Added a vmdebug flag: TIME, that uses clock() to measure the time between entering and exiting function main2.
File: kaffe/kaffevm/classMethod.c
Change: Oops, no changes made here...
File: kaffe/kaffevm/debug.c
Change: Added two vmdebug flags: TIME, which shows time between entry and exit of main2, and VLIW which prints VLIW instruction packing information.
File: kaffe/kaffevm/debug.h
Change: Added two vmdebug flags: TIME, which shows time between entry and exit of main2, and VLIW which prints VLIW instruction packing information.
File: kaffe/kaffevm/gc.h
Change: Added a gc alloc type: GC_ALLOC_VLIW.
File: kaffe/kaffevm/gcFuncs.c
Change: Added a gc alloc type: "vliw" (GC_ALLOC_VLIW).
File: kaffe/kaffevm/jit3/basecode.c
Change: Changed all u[x].value.i to u[x].value.w to get the appropriate size, since this field is often used for pointers.
File: kaffe/kaffevm/jit3/funcs.c
Change: Oops, no change...
File: kaffe/kaffevm/jit3/ia64_heuristic_c.def
Change: New file. Only includes config/ia64/heuristic2/schedule.c.
File: kaffe/kaffevm/jit3/ia64_heuristic_h.def
Change: New file. Only includes config/ia64/heuristic2/datastructures.h
File: kaffe/kaffevm/jit3/icode.c
Change: Changed a lslot_slot_lslot(0, dst, src, HAVE_store_long, Tstore); to slot_slot_slot(0, dst, src, HAVE_store_long, Tstore);
File: kaffe/kaffevm/jit3/labels.c
Change: Added support for the usage of labels in Arvedahl's instruction scheduling heuristic.
File: kaffe/kaffevm/jit3/machine.c
Change: Added support for the usage of labels in Arvedahl's instruction scheduling heuristic. Also ensure that the first instruction generated in a try-block is not preceeded by any subsequent instruction due to VLIW instruction reordering. Further I ensure that the generated code is correctly aligned, add support for IA-64 instruction pointers.
File: kaffe/kaffevm/jit3/machine.h
Change: Added include of "ia64_heuristic_h.def" when using IA-64.
File: kaffe/kaffevm/jit3/registers.c
Change: Added a function getRegister which allocates a register based on type, and function useRegister which increments the usage count for a given register.
File: kaffe/kaffevm/jit3/registers.h
Change: Added declarations of the functions added to registers.c. Added macro const_word(I), similar to const_int(I).
File: kaffe/kaffevm/kaffe.def
Change: Changed a left shift to 3 (IA-64 pointer size is 2^3 bytes) instead of constant switchtable_shift for translating bytecode TABLESWITCH. Only changing switchtable_shift to 3 doesn't do it (I no longer remember why...).
File: kaffe/kaffevm/soft.c
Change: Added a debug print in soft_fixup_trampoline to get the address of the first jit generated instruction of the method that is called.
File: kaffe/kaffevm/systems/unix-jthreads/jthread.c
Change: When returning from context save the gp register is overwritten with junk. Added reseting gp to the correct value.
File: kaffe/xprof/gmonFile.c
Change: gcc wanted an int instead of char in a va_arg call.
More information about the kaffe
mailing list