From c3dfda6e7c5c624f0ca8fca0c2f6f14ec8958d7b Mon Sep 17 00:00:00 2001 From: carl Date: Sun, 21 Apr 2002 15:23:03 +0000 Subject: [PATCH] + makeregsize + changeregsize is now a local routine --- compiler/rgobj.pas | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/compiler/rgobj.pas b/compiler/rgobj.pas index f810e13cdf..8c9d8e8c4f 100644 --- a/compiler/rgobj.pas +++ b/compiler/rgobj.pas @@ -91,17 +91,21 @@ unit rgobj; { registers, otherwise the result is undefined } function isaddressregister(reg: tregister): boolean; virtual; - { tries to allocate the passed register, if possible } + {# tries to allocate the passed register, if possible } function getexplicitregisterint(list: taasmoutput; r : tregister) : tregister;virtual; - { deallocate any kind of register } + {# deallocate any kind of register } procedure ungetregister(list: taasmoutput; r : tregister); virtual; - { deallocate any kind of register } + {# deallocate any kind of register } procedure ungetreference(list: taasmoutput; const ref : treference); virtual; - { reset the register allocator information (usable registers etc) } + {# reset the register allocator information (usable registers etc) } procedure cleartempgen;virtual; + + {# convert a register to a specified register size, and return that register size } + function makeregsize(reg: tregister; size: tcgsize): tregister; virtual; + { saves register variables (restoring happens automatically) } procedure saveregvars(list: taasmoutput; const s: tregisterset); @@ -784,6 +788,14 @@ unit rgobj; begin rg.ungetreference(list,ref); end; + + { on most processors , this routine does nothing, overriden currently } + { only by 80x86 processor. } + function trgobj.makeregsize(reg: tregister; size: tcgsize): tregister; + begin + makeregsize := reg; + end; + {**************************************************************************** @@ -836,13 +848,18 @@ unit rgobj; end; + finalization rg.free; end. { $Log$ - Revision 1.7 2002-04-20 21:32:25 carl + Revision 1.8 2002-04-21 15:23:03 carl + + makeregsize + + changeregsize is now a local routine + + Revision 1.7 2002/04/20 21:32:25 carl + generic FPC_CHECKPOINTER + first parameter offset in stack now portable * rename some constants