fpc/compiler/jvm
Jonas Maebe 21e6401921 * no longer encode all pointers to other pointer types (such as
classes, interfaces, dynamic arrays, ...) as "array of JLObject",
    but instead as an array of the actual pointed-to type. The reason
    for the previous behaviour was mainly that the JVM threadvar
    implementation internally stores all threadvars that are
    such double pointer types into an "array of JLObject". Type casting
    this array to e.g. an "array of array of byte" causes an exception
    even if it only contains "array of byte" instances (since the outer
    array type is different). This is now solved by first taking the
    element of the array and then typecasting it to the destination
    type (so dynarrbyte(arr[0]) instead of pdynarrbyte(arr)^[0]).

    The reason for the new (more accurate) behaviour is because the
    old one caused type errors in case a double pointer field was
    internally created for the nestedfpstruct support (see added
    test)

git-svn-id: branches/jvmbackend@19821 -
2011-12-11 17:25:09 +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 * generate JVM bytecode that passes the stringent requirements of the Dalvik 2011-12-04 14:48:54 +00:00
cpunode.pas + full support for sets on the JVM target 2011-08-20 08:22:22 +00:00
cpupara.pas * sign extend all byte/ansichar/word parameters before passing them 2011-08-30 23:34:12 +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 * generate JVM bytecode that passes the stringent requirements of the Dalvik 2011-12-04 14:48:54 +00:00
itcpujas.pas + jvm (cpu architecure) and java ("OS"/target) identifiers 2011-08-20 07:37:33 +00:00
jvmdef.pas * no longer encode all pointers to other pointer types (such as 2011-12-11 17:25:09 +00:00
jvmreg.dat + (mostly fake) register definitions for the JVM 2011-08-20 07:35:17 +00:00
njvmadd.pas * replace assigned(dynarray) and dynarray=/<>nil with length(dynarray)=/<>0 2011-09-19 19:59:32 +00:00
njvmcal.pas * fixed popping the unused function results of methods returning implicit 2011-11-06 14:01:12 +00:00
njvmcnv.pas * generate JVM bytecode that passes the stringent requirements of the Dalvik 2011-12-04 14:48:54 +00:00
njvmcon.pas * fixed all known memory leaks in the code added for the JVM port 2011-09-26 19:31:34 +00:00
njvmflw.pas * save/restore the current_except_loc instead of invalidating it after each 2011-11-21 18:48:19 +00:00
njvminl.pas * replace assigned(dynarray) and dynarray=/<>nil with length(dynarray)=/<>0 2011-09-19 19:59:32 +00:00
njvmld.pas * no longer encode all pointers to other pointer types (such as 2011-12-11 17:25:09 +00:00
njvmmat.pas * generate JVM bytecode that passes the stringent requirements of the Dalvik 2011-12-04 14:48:54 +00:00
njvmmem.pas * fixed r18981 (conversion of LOC_JUMP to something else must happen before 2011-09-19 21:22:35 +00:00
njvmset.pas * convert non-constant enums in in-expressions to longint if we use the 2011-08-20 08:25:33 +00:00
njvmtcon.pas + generic infrastructure for target-specific switches 2011-11-14 22:57:41 +00:00
njvmutil.pas + support for threadvars in the JVM based on JLThreadLocal; see 2011-08-23 17:45:01 +00:00
pjvm.pas * in case of an enum without a type name (e.g., "type xx = set of (ea,eb)"), 2011-10-28 21:19:12 +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 * sign extend all byte/ansichar/word parameters before passing them 2011-08-30 23:34:12 +00:00