|
@@ -10004,6 +10004,8 @@ TYPE
|
|
offset := 2;
|
|
offset := 2;
|
|
END;
|
|
END;
|
|
Emit(Add(position,reg,tmp,IntermediateCode.Immediate(addressType, ToMemoryUnits(system,system.addressSize *(meta.MethodTableOffset + x.methodNumber + offset)))));
|
|
Emit(Add(position,reg,tmp,IntermediateCode.Immediate(addressType, ToMemoryUnits(system,system.addressSize *(meta.MethodTableOffset + x.methodNumber + offset)))));
|
|
|
|
+ ELSIF meta.simple THEN
|
|
|
|
+ Emit(Add(position,reg,tmp,IntermediateCode.Immediate(addressType, ToMemoryUnits(system,system.addressSize *(meta.MethodTableOffset + x.methodNumber)))));
|
|
ELSE
|
|
ELSE
|
|
Emit(Add(position,reg,tmp,IntermediateCode.Immediate(addressType, ToMemoryUnits(system,system.addressSize *(meta.MethodTableOffset - x.methodNumber)))));
|
|
Emit(Add(position,reg,tmp,IntermediateCode.Immediate(addressType, ToMemoryUnits(system,system.addressSize *(meta.MethodTableOffset - x.methodNumber)))));
|
|
END;
|
|
END;
|
|
@@ -11528,7 +11530,7 @@ TYPE
|
|
modulePointerSectionOffset: LONGINT;
|
|
modulePointerSectionOffset: LONGINT;
|
|
modulePointers: LONGINT;
|
|
modulePointers: LONGINT;
|
|
|
|
|
|
- simple: BOOLEAN; (* simple = no methods, no module loading, no reflection *)
|
|
|
|
|
|
+ simple: BOOLEAN; (* simple = no module loading, no reflection *)
|
|
|
|
|
|
RecordBaseOffset: LONGINT;
|
|
RecordBaseOffset: LONGINT;
|
|
MethodTableOffset: LONGINT; (* method table offset from zero *)
|
|
MethodTableOffset: LONGINT; (* method table offset from zero *)
|