[fpc-devel] fixes of the mips code
Fuxin Zhang
zhangfx at lemote.com
Sat Jun 9 10:29:42 CEST 2012
Hi,
Based on trunk r21549, I have uploaded all my patches to my branch,
please help to review and merge if possible.
svn log --stop-on-copy
http://svn.freepascal.org/svn/fpc/branches/foxsen/mips :
------------------------------------------------------------------------
r21564 | foxsen | 2012-06-09 17:01:14 +0800 (六, 2012-06-09) | 2 行
mips C_alignment is incorrect, hack for now
------------------------------------------------------------------------
r21563 | foxsen | 2012-06-09 16:52:24 +0800 (六, 2012-06-09) | 5 行
remove macros already by common code:
FPC_HAS_TYPE_DOUBLE
FPC_HAS_TYPE_SINGLE
FPC_REQUIRES_PROPER_ALIGNMENT
------------------------------------------------------------------------
r21562 | foxsen | 2012-06-09 16:50:04 +0800 (六, 2012-06-09) | 2 行
make the calling convention support MIPS O32 ABI
------------------------------------------------------------------------
r21561 | foxsen | 2012-06-09 11:32:24 +0800 (六, 2012-06-09) | 3 行
fix short/smallint operations
without this test/cg/tcnvint6.pp failed at 31
------------------------------------------------------------------------
r21560 | foxsen | 2012-06-09 11:23:50 +0800 (六, 2012-06-09) | 3 行
enable softfpu, default first_int_to_real depends on int64_to_float64/32 etc.
It is needed by the patch of r21558
------------------------------------------------------------------------
r21559 | foxsen | 2012-06-09 11:12:30 +0800 (六, 2012-06-09) | 3 行
set default round mode to round nearest instead of round to zero
it fix test/cg/taddcurr.pp
------------------------------------------------------------------------
r21558 | foxsen | 2012-06-09 11:01:56 +0800 (六, 2012-06-09) | 3 行
use inherited first_int_to_real to avoid mixing doubles and singles
it fixes the failure of test/cg/taddcurr.pp
------------------------------------------------------------------------
r21557 | foxsen | 2012-06-09 10:59:32 +0800 (六, 2012-06-09) | 4 行
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
------------------------------------------------------------------------
r21554 | foxsen | 2012-06-08 23:56:28 +0800 (五, 2012-06-08) | 2 行
correct constant for mipsel
------------------------------------------------------------------------
r21553 | foxsen | 2012-06-08 23:50:04 +0800 (五, 2012-06-08) | 2 行
make clear what registers might need to be saved
------------------------------------------------------------------------
r21552 | foxsen | 2012-06-08 23:45:24 +0800 (五, 2012-06-08) | 3 行
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
------------------------------------------------------------------------
r21551 | foxsen | 2012-06-08 23:37:18 +0800 (五, 2012-06-08) | 3 行
use cpu64bitaddr instead of cpu64bit
fix wrong order of 64BIT return register(now for little endian mips)
------------------------------------------------------------------------
r21550 | foxsen | 2012-06-08 23:04:03 +0800 (五, 2012-06-08) | 2 行
merge trunk r21549
More information about the fpc-devel
mailing list