This is the mail archive of the binutils@sources.redhat.com 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: Closing in on unified assembly syntax


Ian Lance Taylor <ian@airs.com> writes:

> Zack Weinberg <zack@codesourcery.com> writes:
>
>>  - Conditional suffixes are accepted, but ignored, on all Thumb
>>    instructions.
>
> Maybe you are implementing to some standard that requires this, but it
> looks decidedly odd to me.  I would expect that a conditional suffix
> in Thumb mode should cause an error.

It's an intermediate point, useful in itself as it allows correctly
written Thumb-2 code to assemble.  The next stage is to validate these
conditional suffixes against preceding IT instructions, which actually
cause conditional execution.  Here's an example -

        @ if (r0 == r1) r2 = r0; else r2 = r1;
        cmp     r0, r1
        ite     eq
        moveq   r2, r0
        movne   r2, r1

The validator would detect errors such as

        cmp     r0, r1
        ite     eq
        movls   r2, r0
        movgt   r2, r1

A further improvement, which is optional (but we may well do it, as I
suspect it'll make the GCC bits easier) is to synthesize and insert IT
instructions when the source contains instructions with conditional
suffixes, but no IT instructions.

zw


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