This is the mail archive of the
mailing list for the binutils project.
Re: Universality of nop
- From: <Paul_Koning at Dell dot com>
- To: <joel dot sherrill at OARcorp dot com>
- Cc: <binutils at sourceware dot org>, <christian at cmd dot nu>, <heshamelmatary at gmail dot com>
- Date: Wed, 20 Aug 2014 19:38:38 +0000
- Subject: Re: Universality of nop
- Authentication-results: sourceware.org; auth=none
- References: <53F4F786 dot 1010809 at oarcorp dot com>
On Aug 20, 2014, at 3:31 PM, Joel Sherrill <joel.sherrill@OARcorp.com> wrote:
> In getting RTEMS and tests to build for the or1k, Hesham ran into
> test which had inline assembly for "nop". or1k does not have nop
> defined. Interestingly, this has not been a problem on the 17 other
> architectures we build RTEMS for.
> Should all targets have a nop instruction? Or did we just get lucky
> 17 times? :)
Do you mean “an instruction that does not touch the system state in a way that matters”? Or do you mean “an instruction like that, whose assembly language mnemonic is NOP”?
I don’t think it makes sense to count on the no operation instruction to be called “nop”. I can think of at least a couple of machines (thought not RTEMS targets) where there is no such mnemonic. It’s probably true that for every machine you can find something that has the behavior you want, but it might not have the same name. (It might be “skip” or “jfcl”, or “no” for example.)
You might have one of your platform header files define a macro which is “suitable asm for NOP”. Or the name of the no operation instruction, whichever is more convenient.