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
