* pparautl.pas, insert_funcret_para:
assume that the result in a generic function/method can not be passed in a param
* pparautl.pas, insert_funcret_local:
don't call ret_in_param, but create the symbol as we need a valid funcretsym
* pstatmnt.pas, assembler_block:
don't modify the framepointer for a generic method/function
* rautils.pas, TOperand.SetupResult:
don't assume that we can't use the result for a generic function/method
git-svn-id: trunk@21608 -
+ pgenutil.pas:
add a procedure which adds a type symbol to a non-Delphi-mode generic class or record which has the same name as the unit global dummy symbol for that generic. I don't know why I had that idea earlier as this will simplify some of the conditions in the parser again (I haven't changed these yet, but I hope to do that at least when I start working on generic functions).
* pgenutil.pas, generate_specialization:
correctly handle "specialize TSomeGeneric<T>" as method parameter in a generic with the newly added rename symbol
* pdecobj.pas, object_dec & ptype.pas, record_dec:
call the procedure to add the rename symbol (the procedure checks whether the mode is correct)
* ppu.pas:
increase PPU version so that we don't use non-Delphi mode units with generics, but without the rename symbol
+ added tests:
the one in webtbs are for classes/objects and those in test are for records
git-svn-id: trunk@21603 -
21558:
use inherited first_int_to_real to avoid mixing doubles and singles
it fixes the failure of test/cg/taddcurr.pp
21559:
set default round mode to round nearest instead of round to zero
it fix test/cg/taddcurr.pp
21560:
enable softfpu, default first_int_to_real depends on int64_to_float64/32 etc.
It is needed by the patch of r21558
git-svn-id: trunk@21601 -
Make macro MIPS/CPUMIPS/MIPS32 common for big endian and little endian mips processors
use MIPSEL* for little endian systems
use MIPSEB* for big endian systems
git-svn-id: trunk@21599 -
use NR_R1 instead of NR_R3 for big stack adjustment temp register(R1 is $at, more suitable)
use A_JR for register operands, although the assembler can translate J to JR when necessary, it is more clear
git-svn-id: trunk@21596 -
+ Add CYCLELEVEL variable, whose value can be from 1 to 3
to be able to modify used options at a specific level,
using OPTLEVELX, LOCALOPTLEVELX and RTLOPTLEVELX
with X being the current value of CYCLELEVEL.
extcycle: Append to value of OPT variable instead of overwriting it.
fullcycle: Remove i386 target for x86_64 source cpu
as this does not work for windows-64bit.
git-svn-id: trunk@21590 -
to be able to modify used options at a specific level,
using OPTLEVELX, LOCALOPTLEVELX and RTLOPTLEVELX
with X being the current value of CYCLELEVEL.
extcycle: Append to value of OPT variable instead of overwriting it.
fullcycle: Remove i386 target for x86_64 source cpu
as this does not work for windows-64bit.
git-svn-id: trunk@21589 -
* pdecsub.pas, parse_proc_dec & pdecobj.pas, constructor_head:
correctly set the return type of the constructor of a class helper to the extended def
* psub.pas, generate_bodyentry_block:
call the NEWINSTANCE of the extended class for constructors of class helpers
git-svn-id: trunk@21582 -