Actually, looking at the code - it appears we have these things today:

>From gcc/config/or1k/or1k.opt:
> mdelay
> Target RejectNegative Negative(mno-delay) Var(or1k_delay_selected, 
> OR1K_DELAY_ON)
> Assume branches and jumps have a delay slot
> mno-delay
> Target RejectNegative Negative(mcompat-delay) Var(or1k_delay_selected, 
> OR1K_DELAY_OFF)
> Assume branches and jumps do not have a delay slot
> mcompat-delay
> Target RejectNegative Negative(mdelay) Var(or1k_delay_selected, 
> OR1K_DELAY_COMPAT)
> Assume branches and jumps have a delay slot, but fill them with nops

Building for or1knd sets  OR1K_DELAY_DEFAULT=OR1K_DELAY_OFF (from
gcc/config.gcc) which sets the default for or1k_delay_selected, which
seems to be the variable overrideable by the flag.
Building a gcc for or1knd would simply use mno-delay as the default,
if I understand the code correctly.

To me using the target to specify these things seems like the correct
thing to do.

On Sun, Mar 9, 2014 at 1:50 PM, Christian Svensson <[email protected]> wrote:
> Hi,
>
> I guess so. Aarch64 has aarch64_be IIRC. In that case it would be
> or1k_le and or1knd_le.
>
> or1knd has a non-trivial presence in our code base, and it changes a
> quite fundamental assumption of the or1k architecture.
> Running or1knd code on or1k (or the other way around) would certainly
> produce all kinds of weird results, I'm not sure it's something you
> would like to tweak with a flag. Possibly we could add a flag to make
> the code generated usable for both by always putting nop where the
> delay slots would be.
>
> On Sun, Mar 9, 2014 at 1:38 PM, Jeremy Bennett
> <[email protected]> wrote:
>> On 09/03/14 10:19, Christian Svensson wrote:
>>> Hi,
>>>
>>> nd in or1knd is stands for No Delay. It's or1k but with no delay slot.
>>
>> Hi Christian,
>>
>> I do rather wonder if this justifies having a different architecture
>> name. I would expect it to be an option in the tool chain (-mno-delay
>> for example).
>>
>> The usual case where you have variants in the architecture name is for
>> endianness. For example arc (little-endian) and arceb (bit-endian). What
>> do we do about the little-endian variants of OR1K. Do we have or1kndel
>> and or1kel?
>>
>>
>> Jeremy
>>
>>> On Sun, Mar 9, 2014 at 9:49 AM, Geert Uytterhoeven <[email protected]> 
>>> wrote:
>>>> On Sat, Mar 8, 2014 at 2:56 PM, Christian Svensson <[email protected]> 
>>>> wrote:
>>>>> Since binutils contains code that targets or1knd, I'm going to submit
>>>>
>>>> Pardon my ignorance, but what's the difference between or1k and or1knd?
>>>> I tried Google, but didn't become wiser.
>>>>
>>>> Thanks!
>>>>
>>>> Gr{oetje,eeting}s,
>>>>
>>>>                         Geert
>>>>
>>>> --
>>>> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- 
>>>> [email protected]
>>>>
>>>> In personal conversations with technical people, I call myself a hacker. 
>>>> But
>>>> when I'm talking to journalists I just say "programmer" or something like 
>>>> that.
>>>>                                 -- Linus Torvalds
>>
>>
>> --
>> Tel:      +44 (1590) 610184
>> Cell:     +44 (7970) 676050
>> SkypeID: jeremybennett
>> Twitter: @jeremypbennett
>> Email:   [email protected]
>> Web:     www.embecosm.com
> _______________________________________________
> Openrisc mailing list
> [email protected]
> http://lists.opencores.org/listinfo/openrisc
_______________________________________________
OpenRISC mailing list
[email protected]
http://lists.openrisc.net/listinfo/openrisc

Reply via email to