This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH ARM/THUMB1] unified syntax MOV with both low register emitting unpredictable code

On 17/11/11 20:52, Thomas Klein wrote:
> On 11/17/11 09:57, Richard Earnshaw wrote:
>> On 15/11/11 23:11, Thomas Klein wrote:
>>> On 11/15/11 15:13, Matthew Gretton-Dann wrote:
>>>> On 14/11/11 20:21, Thomas Klein wrote:
>>>>> +        if (low_regs&&   !ARM_CPU_HAS_FEATURE (selected_cpu,
>>>>> arm_ext_v6t2))
>>>> This test is incorrect - you want to check for arm_ext_v6, as all v6
>>>> variants whether Thumb-1 or Thumb-2 allow low registers in this
>>>> instruction.
>>>>> +          {
>>>> Some regression tests would be good here.
>>> Correction and tests attached.
>>> Is this OK.
>> This is incorrect.  There is no pre-v6 Thumb1 'MOV lo, lo' instruction
>> in unified syntax and the assembler should fault it; it shouldn't try to
>> use a flag setting insn.
> Modifications attached.
> Is this correct the way.
> For example if we try to assemble v4t of newlib/libc/sys/arm/crt0.S
> we will get errors for all 'MOV lo, lo' instructions.
> So this must be corrected, too.

> ChangeLog
> 2011-11-17  Thomas Klein  <>
> 	* config/tc-arm.c (do_t_mov_cmp): Prevent emitting code for MOV with
> 	two low register at arch v4t or v5t when assember using unified syntax.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]