amunits, arosunits, morphunits: don't pass the calculated object address through a local var in OCLASS, it's not needed really. also allow inlining of the macros. this results in better code generated

git-svn-id: trunk@32703 -
This commit is contained in:
Károly Balogh 2015-12-24 05:54:03 +00:00
parent 5d7b08d28f
commit c10272d879
3 changed files with 16 additions and 25 deletions

View File

@ -4189,9 +4189,9 @@ PROCEDURE ZipWindow(window : pWindow location 'a0'); syscall _IntuitionBase 504;
function INST_DATA (cl: pIClass; o: p_Object): Pointer;
function SIZEOF_INSTANCE (cl: pIClass): Longint;
function BASEOBJECT (o: p_Object): Pointer;
function _OBJ(o: p_Object): p_Object;
function __OBJECT (o: Pointer): p_Object;
function OCLASS (o: Pointer): pIClass;
function _OBJ(o: p_Object): p_Object; inline;
function __OBJECT (o: Pointer): p_Object; inline;
function OCLASS (o: Pointer): pIClass; inline;
function SHIFTITEM (n: smallint): word;
function SHIFTMENU (n: smallint): word;
function SHIFTSUB (n: smallint): word;
@ -4243,11 +4243,8 @@ begin
end;
function OCLASS (o: Pointer): pIClass; inline;
var
obj: p_Object;
begin
obj := p_Object(Longint(o) - sizeof(t_Object));
OCLASS := obj^.o_Class;
OCLASS := p_Object(o - sizeof(t_Object))^.o_Class;
end;
function SHIFTITEM (n: smallint): word; inline;

View File

@ -3367,9 +3367,9 @@ function Is_Children(Win: PWindow): Boolean;
function INST_DATA(Cl: PIClass; O: P_Object): Pointer;
function SIZEOF_INSTANCE(Cl: PIClass): LongInt;
function BASEOBJECT(O: P_Object): Pointer;
function _OBJ(O: Pointer): P_Object;
function __OBJECT(O: Pointer): P_Object;
function OCLASS(O: Pointer): PIClass;
function _OBJ(O: Pointer): P_Object; inline;
function __OBJECT(O: Pointer): P_Object; inline;
function OCLASS(O: Pointer): PIClass; inline;
function SHIFTITEM(N: SmallInt): Word;
function SHIFTMENU(N: SmallInt): Word;
function SHIFTSUB(N: SmallInt): Word;
@ -3567,22 +3567,19 @@ begin
BASEOBJECT := Pointer(PtrUInt(O) + SizeOf(T_Object));
end;
function _OBJ(O: Pointer): P_Object;
function _OBJ(O: Pointer): P_Object; inline;
begin
_OBJ := P_Object(O);
end;
function __OBJECT(O: Pointer): P_Object;
function __OBJECT(O: Pointer): P_Object; inline;
begin
__OBJECT := P_Object(PtrUInt(O) - SizeOf(T_Object))
end;
function OCLASS(O: Pointer): PIClass;
var
Obj: P_Object;
function OCLASS(O: Pointer): PIClass; inline;
begin
Obj := P_Object(PtrUInt(O) - SizeOf(T_Object));
OCLASS := Obj^.o_Class;
OCLASS := P_Object(PtrUInt(O) - SizeOf(T_Object))^.o_Class;
end;
function SHIFTITEM(N: SmallInt): Word;

View File

@ -4449,9 +4449,9 @@ SysCall IntuitionBase 954;
function INST_DATA (cl: pIClass; o: p_Object): Pointer;
function SIZEOF_INSTANCE (cl: pIClass): Longint;
function BASEOBJECT (o: p_Object): Pointer;
function _OBJ(o: p_Object): p_Object;
function __OBJECT (o: Pointer): p_Object;
function OCLASS (o: Pointer): pIClass;
function _OBJ(o: p_Object): p_Object; inline;
function __OBJECT (o: Pointer): p_Object; inline;
function OCLASS (o: Pointer): pIClass; inline;
function SHIFTITEM (n: smallint): word;
function SHIFTMENU (n: smallint): word;
function SHIFTSUB (n: smallint): word;
@ -4533,12 +4533,9 @@ begin
__OBJECT := p_Object(Longint(o) - sizeof(t_Object))
end;
function OCLASS (o: Pointer): pIClass;
var
obj: p_Object;
function OCLASS (o: Pointer): pIClass; inline;
begin
obj := p_Object(Longint(o) - sizeof(t_Object));
OCLASS := obj^.o_Class;
OCLASS := p_Object(o - sizeof(t_Object))^.o_Class;
end;
function SHIFTITEM (n: smallint): word;