Fix mrc and mrc2 with APSR_nzcv. Binutils encodes it internally as 0 where

we need it to be set to 15 for it to be equivalent to r15.

MFC after:	1 week
X-MFC with:	r275415
Sponsored by:	ABT Systems Ltd
This commit is contained in:
Andrew Turner 2014-12-07 21:47:19 +00:00
parent 8948956770
commit 6ed7db33bc
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=275584

View File

@ -6789,7 +6789,11 @@ do_co_reg (void)
{
inst.instruction |= inst.operands[0].reg << 8;
inst.instruction |= inst.operands[1].imm << 21;
inst.instruction |= inst.operands[2].reg << 12;
/* If this is a vector we are using the APSR_nzcv syntax, encode as r15 */
if (inst.operands[2].isvec != 0)
inst.instruction |= 15 << 12;
else
inst.instruction |= inst.operands[2].reg << 12;
inst.instruction |= inst.operands[3].reg << 16;
inst.instruction |= inst.operands[4].reg;
inst.instruction |= inst.operands[5].imm << 5;