[LLVMdev] .thumb_set

Pete Cooper peter_cooper at apple.com
Fri Jun 12 10:51:09 PDT 2015


> On Jun 12, 2015, at 10:47 AM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
> 
> For what it is worth it, gas has this strange behaviour.
> 
> I agree it is strange, but why is it an issue for r239440? Will I get
> a failure if I revert it?
You will yeah.  beta had its ‘Offset’ set to some value but then the .set tried to make it a variable using setVariableValue.

Given that I put Offset and Value in the same union, I added an assert to ensure that we can’t change from Offset to Value.

Do you think its possible for this change from Offset to Value to happen to a symbol?  If so, and if Offset and Value are still mutually exclusive then we just need to support overriding the Offset with a Value.

Cheers,
Pete
> 
> Cheers,
> Rafael
> 
> 
> On 12 June 2015 at 12:17, Pete Cooper <peter_cooper at apple.com> wrote:
>> Hey Salem,
>> 
>> Any chance you’ve had time to take a look at this?
>> 
>> If you prefer, I can prepare a patch with the change i’d like to make and we
>> can see if you are happy with it.
>> 
>> Cheers,
>> Pete
>> 
>> On Jun 9, 2015, at 4:09 PM, Pete Cooper <peter_cooper at apple.com> wrote:
>> 
>> Hi all
>> 
>> Saleem, in 2014 you added the .thumb_set test case.  I’ve found a difference
>> in behaviour of .thumb_set compared to .set.  I was hoping to resolve this
>> difference as it will allow me to reapply r239440.
>> 
>> The issue i’m seeing is that we define an alpha function, then beta
>> function, then assign alpha to beta.  But given that beta has already been
>> defined, this would mean we are redefining it at the point of the
>> .thumb_set:
>> 
>> .text
>> .thumb
>> 
>> .thumb_set alias_defined_data, bedazzle
>> 
>> .type alpha,%function
>> alpha:
>> nop
>> 
>>        .type beta,%function
>> beta:
>> bkpt
>> 
>> .thumb_set beta, alpha
>> 
>> The above code currently passes.  However, if I change .thumb_set to .set
>> then I get
>> 
>> ../test/MC/ARM/thumb_set.s:60:13: error: redefinition of 'beta'
>>        .set beta, alpha
>> 
>> I would like to make .thumb_set throw the same error here as I believe that
>> is how it should behave in this case.
>> 
>> Please let me know if you are ok with this, or some other approach.  I’m
>> unfamiliar with it so its possible that what i’ve found isn’t a bug at all
>> but just how we want it to behave.
>> 
>> Cheers,
>> Pete
>> 
>> 





More information about the llvm-dev mailing list