[kaffe] Jit3 for IA-64

Svante Arvedal svaar968@student.liu.se
Fri Mar 14 04:08:02 2003


This is a multi-part message in MIME format.

------=_NextPart_000_0028_01C2EA2A.6519A260
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hi!
A bit late but here comes the requested ChangeLog entries.

Svante

----- Original Message -----
From: "Dalibor Topic" <robilad@yahoo.com>
To: "Svante Arvedahl" <svaar968@student.liu.se>; <kaffe@kaffe.org>;
<jim@kaffe.org>; <gbeauchesne@mandrakesoft.com>
Sent: Monday, February 24, 2003 8:46 PM
Subject: Re: [kaffe] Jit3 for IA-64


> Hi Svante,
>
> --- Svante Arvedahl <svaar968@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/
>

------=_NextPart_000_0028_01C2EA2A.6519A260
Content-Type: text/plain;
	name="ChangeLog-ia64-jit3.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="ChangeLog-ia64-jit3.txt"

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@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@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@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@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.=20

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.
------=_NextPart_000_0028_01C2EA2A.6519A260--