[PATCH] Support for MIPS R5900 (Sony Playstation 2)

nick clifton nickc@redhat.com
Fri Jan 4 17:24:00 GMT 2013


Hi Jürgen,

> Changelog for bfd:
> 2013-01-03  Juergen Urban<JuergenUrban@gmx.de>
>
> 	* archures.c: Add support for MIPS r5900
> 	* bfd-in2.h: Add support for MIPS r5900
> 	* config.bfd: Add support for Sony Playstation 2
> 	* cpu-mips.c: Add support for MIPS r5900
> 	* elfxx-mips.c: Add support for MIPS r5900 (extension of r4000)
>
> Changelog for gas:
> 2013-01-03  Juergen Urban<JuergenUrban@gmx.de>
>
> 	* config/tc-mips.c: Add support for MIPS r5900
> 	Add M_LQ_AB and M_SQ_AB to support large values for instructions lq and sq.
> 	* config/tc-mips.c (can_swap_branch_p, get_append_method): Detect some conditional short loops to fix a bug on the r5900 by NOP in the branch delay slot.
> 	* config/tc-mips.c (M_MUL): Support 3 operands in multu on r5900.
> 	* config/tc-mips.c (M_TRUNCWS): Support trunc.w.s on r5900 in MIPS ISA I.
> 	* config/tc-mips.c (s_mipsset): Force 32 bit floating point on r5900.
> 	* configure.in: Detect CPU type when target string contains r5900 (e.g. mips64r5900el-linux-gnu).
>
> 2013-01-03  ragnarok2040
>
> 	* config/tc-mips.c (mips_ip): Check parameter range of instructions mfps and mtps on r5900.
>
> Changelog for include:
> 2013-01-03  Juergen Urban<JuergenUrban@gmx.de>
>
> 	* elf/mips.h: Add MIPS machine variant number for r5900 which is compatible with old Playstation 2 software.
> 	* opcode/mips.h: Add support for r5900 instructions including lq and sq.
>
> Changelog for ld:
> 2013-01-03  Juergen Urban<JuergenUrban@gmx.de>
>
> 	* configure.tgt: Support ELF files for Sony Playstation 2 (for ps2dev and ps2sdk).
> 	* emulparams/elf32lr5900n32.sh: Create linker script for Sony Playstation 2 ELF files using MIPS ABI n32.
> 	* emulparams/elf32lr5900.sh: Create linker script for Sony Playstation 2 ELF files using MIPS ABI o32.
> 	* Makefile.am: Add linker scripts for Sony Playstation 2 ELF files.
>
> Changelog for opcodes:
> 2013-01-03  ragnarok2040
>
> 	* opcodes/mips-dis.c: Add names for CP0 registers of r5900.
> 	* opcodes/mips-opc.c: Add M_SQ_AB and M_LQ_AB to support larger range for instructions sq and lq.
>
> Changelog for opcodes:
> 2013-01-03  Juergen Urban<JuergenUrban@gmx.de>
>
> 	* opcodes/mips-opc.c: Add support for MIPS r5900 CPU.
> 	Add support for 128 bit MMI (Multimedia Instructions).
> 	Add support for EE instructions (Emotion Engine).
> 	Disable unsupported floating point instructions (64 bit and undefined compare operations).
> 	Enable instructions of MIPS ISA IV which are supported by r5900.
> 	Disable 64 bit co processor instructions.
> 	Disable 64 bit multiplication and division instructions.
> 	Disable instructions for co-processor 2 and 3, because these are not supported (preparation for later VU0 support (Vector Unit)).
> 	Disable cvt.w.s because this behaves like trunc.w.s and the correct execution can't be ensured on r5900.
> 	Add trunc.w.s using the opcode encoding of cvt.w.s on r5900. This will confuse less developers and compilers.


Approved and applied.

Cheers
   Nick



More information about the Binutils mailing list