fpc/compiler/jvm
Jonas Maebe d6966e545b + support for formal var/out parameters on the JVM target:
o primitive types are first boxed
   o the parameter is passed inside an array of one class instance
   o changing the parameter inside the routine (by assigning a value to it
     like in Delphi.NET and different from regular Pascal code) will replace
     this class instance (again boxing the value if required)
   o on return, the class instance is extracted, unboxed if required, and
     assigned back to the original location
   o formal const parameters are handled without the extra array indirection,
     since they cannot be changed

  TODO: while writing tjvmcallparanode.handleformalcopyoutpara() I forgot that
    calling getcopy on ttemprefnodes whose ttempcreatenode hasn't been copied
    yet works fine, so that code is more complex than needed. Still have to
    fix.

git-svn-id: branches/jvmbackend@18675 -
2011-08-20 08:23:33 +00:00
..
aasmcpu.pas + support for (formal/untyped) constants (ordinal, floating point, 2011-08-20 07:55:41 +00:00
cgcpu.pas * removed unused local variables 2011-08-20 07:54:37 +00:00
cpubase.pas + cpubase for jvm: opcodes, basic register definitions, ... 2011-08-20 07:35:32 +00:00
cpuinfo.pas * fixed compilation 2011-08-20 07:36:22 +00:00
cpunode.pas + full support for sets on the JVM target 2011-08-20 08:22:22 +00:00
cpupara.pas + support for formal var/out parameters on the JVM target: 2011-08-20 08:23:33 +00:00
cpupi.pas + tjvmprocinfo, only overrides set_first_temp_offset() and sets it to 2011-08-20 07:37:20 +00:00
cputarg.pas + support for JVM local variable and parameter debug information 2011-08-20 07:50:41 +00:00
dbgjasm.pas + support for emiting "signature" attributes for fields and methods; these 2011-08-20 08:08:00 +00:00
hlcgcpu.pas * changed initialization of records from constructing a new instance and 2011-08-20 08:23:27 +00:00
itcpujas.pas + jvm (cpu architecure) and java ("OS"/target) identifiers 2011-08-20 07:37:33 +00:00
jvmreg.dat + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
njvmadd.pas + full support for sets on the JVM target 2011-08-20 08:22:22 +00:00
njvmcal.pas + support for formal var/out parameters on the JVM target: 2011-08-20 08:23:33 +00:00
njvmcnv.pas + support for formal var/out parameters on the JVM target: 2011-08-20 08:23:33 +00:00
njvmcon.pas + full support for sets on the JVM target 2011-08-20 08:22:22 +00:00
njvmflw.pas * converted all enum handling for the JVM target so that it uses the 2011-08-20 08:15:54 +00:00
njvminl.pas + support for formal var/out parameters on the JVM target: 2011-08-20 08:23:33 +00:00
njvmld.pas + support for formal var/out parameters on the JVM target: 2011-08-20 08:23:33 +00:00
njvmmat.pas + support for qword div/mod via helper (the JVM only supports signed 2011-08-20 08:07:02 +00:00
njvmmem.pas * fixed dereferencing pointers to JVM implicit pointer types in case the 2011-08-20 08:22:05 +00:00
njvmset.pas + full support for sets on the JVM target 2011-08-20 08:22:22 +00:00
njvmtcon.pas + full support for sets on the JVM target 2011-08-20 08:22:22 +00:00
njvmutil.pas * when the user calls initialize(), force initialization to happen on the 2011-08-20 08:23:16 +00:00
rgcpu.pas * fixed memory leak 2011-08-20 08:13:36 +00:00
rjvmcon.inc + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
rjvmnor.inc + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
rjvmnum.inc + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
rjvmrni.inc + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
rjvmsri.inc + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
rjvmstd.inc + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
rjvmsup.inc + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
tgcpu.pas + full support for sets on the JVM target 2011-08-20 08:22:22 +00:00