+ support for JVM additions and some other fixes

git-svn-id: branches/jvmbackend@18596 -
This commit is contained in:
Jonas Maebe 2011-08-20 08:13:44 +00:00
parent d0a3b49e6c
commit 54f96997b9

View File

@ -70,7 +70,8 @@ const
{ 10 } 'arm',
{ 11 } 'powerpc64',
{ 12 } 'avr',
{ 13 } 'mipsel'
{ 13 } 'mipsel',
{ 14 } 'jvm'
);
{ List of all supported system-cpu couples }
@ -146,7 +147,8 @@ const
{ 67 } 'Linux-MIPSel',
{ 68 } 'NativeNT-i386',
{ 69 } 'iPhoneSim-i386',
{ 70 } 'Wii-powerpc'
{ 70 } 'Wii-powerpc',
{ 71 } 'Java-JVM'
);
const
@ -221,7 +223,7 @@ Function Varspez2Str(w:longint):string;
const
{ in symconst unit
tvarspez = (vs_value,vs_const,vs_var,vs_out,vs_constref); }
varspezstr : array[tvarspez] of string[6]=('Value','Const','Var','Out','Hidden');
varspezstr : array[tvarspez] of string[6]=('Value','Const','Var','Out','ConstRef','Final');
begin
if w<=ord(high(varspezstr)) then
Varspez2Str:=varspezstr[tvarspez(w)]
@ -1146,7 +1148,8 @@ const
(mask:po_objc; str:'ObjC'),
(mask:po_enumerator_movenext; str:'EnumeratorMoveNext'),
(mask:po_optional; str: 'Optional'),
(mask:po_delphi_nested_cc;str: 'Delphi-style nested frameptr')
(mask:po_delphi_nested_cc;str: 'Delphi-style nested frameptr'),
(mask:po_java ;str: 'Java method')
);
var
proctypeoption : tproctypeoption;
@ -1977,12 +1980,20 @@ begin
writeln(space,' Import lib/pkg : ',getstring);
write (space,' Options : ');
readobjectdefoptions;
writeln(space,' FieldAlign : ',shortint(getbyte));
writeln(space,' RecordAlign : ',shortint(getbyte));
writeln(space,' PadAlign : ',shortint(getbyte));
writeln(space,'UseFieldAlignment : ',shortint(getbyte));
writeln(space,' DataSize : ',getasizeint);
writeln(space,' PaddingSize : ',getword);
if (df_copied_def in defoptions) then
begin
write(space,' Copied from : ');
readderef('');
end
else
begin
writeln(space,' FieldAlign : ',shortint(getbyte));
writeln(space,' RecordAlign : ',shortint(getbyte));
writeln(space,' PadAlign : ',shortint(getbyte));
writeln(space,'UseFieldAlignment : ',shortint(getbyte));
writeln(space,' DataSize : ',getasizeint);
writeln(space,' PaddingSize : ',getword);
end;
if not EndOfEntry then
HasMoreInfos;
{read the record definitions and symbols}
@ -2013,6 +2024,9 @@ begin
odt_objcclass : writeln('objcclass');
odt_objcprotocol : writeln('objcprotocol');
odt_helper : writeln('helper');
odt_objccategory : writeln('objccategory');
odt_javaclass : writeln('Java class');
odt_interfacejava : writeln('Java interface');
else writeln('!! Warning: Invalid object type ',b);
end;
writeln(space,' External name : ',getstring);
@ -2048,7 +2062,7 @@ begin
writeln(space,' Visibility: ',Visibility2Str(getbyte));
end;
if tobjecttyp(b) in [odt_class,odt_interfacecorba,odt_objcclass,odt_objcprotocol] then
if tobjecttyp(b) in [odt_class,odt_interfacecorba,odt_objcclass,odt_objcprotocol,odt_javaclass,odt_interfacejava] then
begin
l:=getlongint;
writeln(space,' Impl Intf Count : ',l);