[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
arm vmsr bug?
From: |
Clive Davies |
Subject: |
arm vmsr bug? |
Date: |
Thu, 8 Mar 2012 14:37:51 +0000 |
Hi,
I think that there's a bug in the generation of ARM vmsr instructions in
binutils 2.2. If I try to assemble:-
mov r0, #(0x1 << 30)
vmsr fpexc, r0
to enable the neon unit on a cortex-a9 then I get an error
Error: operand 0 must be FPSCR -- `vmsr fpexc,r0'
Because in gas/config/tc-arm.c we have:-
static void
do_vmsr (void)
{
unsigned Rt = inst.operands[1].reg;
if (thumb_mode)
reject_bad_reg (Rt);
else if (Rt == REG_PC)
{
inst.error = BAD_PC;
return;
}
if (inst.operands[0].reg != 1)
first_error (_("operand 0 must be FPSCR"));
inst.instruction |= (Rt << 12);
}
But, according to the ARM Architecture Reference Manual:-
VMSR<c><q> <spec_reg>, <Rt>
where:
<c><q> See Standard assembler syntax fields on page A8-7.
<spec_reg> Is one of:
FPSID reg = '0000'
FPSCR reg = '0001'
FPEXC reg = '1000'.
If the Common VFP subarchitecture is implemented, see Subarchitecture
additions to the
VFP system registers on page AppxB-15 for additional values of
<spec_reg>.
<Rt> The general-purpose register to be transferred to <spec_reg>.
I think this is a bug, unless there's some reason for disallowing fpsid & fpexc
that I haven't found....
Thanks,
Clive
Clive Davies
Altera Europe
To ensure compliance with requirements imposed by applicable law, we inform you
of the following:
Name of Company Altera Europe Limited
Company Registration # 2647731
Place of Registration Cardiff, Wales (Companies House)
Registered Office Address Holmers Farm Way, High Wycombe,
Buckinghamshire. HP12 4XF
Confidentiality Notice.
This message may contain information that is confidential or otherwise
protected from disclosure. If you are not the intended recipient, you are
hereby notified that any use, disclosure, dissemination, distribution, or
copying of this message, or any attachments, is strictly prohibited. If you
have received this message in error, please advise the sender by reply e-mail,
and delete the message and any attachments. Thank you.
- arm vmsr bug?,
Clive Davies <=