On Sun, 9 Jul 2017, Maciej W. Rozycki wrote: > Fix a commit 3021773c7c3e ("MIPS: DEC: Avoid la pseudo-instruction in > delay slots") regression and remove assembly errors: > > arch/mips/dec/int-handler.S: Assembler messages: > arch/mips/dec/int-handler.S:162: Error: Macro used $at after ".set noat" > arch/mips/dec/int-handler.S:163: Error: Macro used $at after ".set noat" > arch/mips/dec/int-handler.S:229: Error: Macro used $at after ".set noat" > arch/mips/dec/int-handler.S:230: Error: Macro used $at after ".set noat" > > triggering with with the CPU_DADDI_WORKAROUNDS option set and the DADDIU > instruction. This is because with that option in place the instruction > becomes a macro, which expands to an LI/DADDU (or actually ADDIU/DADDU) > sequence that uses $at as a temporary register. Use ADDIU instead then, > which is equivalent when used with LUI to compose the intermediate > 32-bit values. 64-bit DEC configurations unconditionally select CPU_DADDI_WORKAROUNDS, which in turn requires KBUILD_SYM32 or a build error is triggered in our top-level arch Makefile. Therefore this issue can be handled better, by checking for KBUILD_64BIT_SYM32 and then the problematic 64-bit leg of the #ifdef can be reduced to #error, as not supposed to be ever enabled. Withdrawing this patch then, I'll send a different one soon. Maciej