On Thu, Feb 25, 2021 at 02:10:02PM +1100, Daniel Axtens wrote: > This is dumb but makes the llvm integrated assembler happy. > https://github.com/ClangBuiltLinux/linux/issues/764
> -#define r0 %r0 > +#define r0 0 This is a big step back (compare 9a13a524ba37). If you use a new enough GAS, you can use the -mregnames option and just say "r0" directly (so not define it at all, or define it to itself). === addi 3,3,3 addi r3,r3,3 addi %r3,%r3,3 addi 3,3,3 addi r3,r3,r3 addi %r3,%r3,%r3 === $ as t.s -o t.o -mregnames t.s: Assembler messages: t.s:6: Warning: invalid register expression t.s:7: Warning: invalid register expression Many people do not like bare numbers. It is a bit like not wearing seatbelts (but so is all assembler code really: you just have to pay attention). A better argument is that it is harder to read for people not used to assembler code like this. We used to have "#define r0 0" etc., and that was quite problematic. Like that "addi r3,r3,r3" example, but also, people wrote "r0" where only a plain 0 is allowed (like in "lwzx r3,0,r3": "r0" would be misleading there!) Segher