On Sun, 4 Feb 2018, Greg Ungerer wrote: > A "mips-linux-objdump -d" around that PC gives: > > 80656610: 40090001 mfc0 t1,c0_mvpcontrol > 80656614: 35290002 ori t1,t1,0x2 > 80656618: 40890001 mtc0 t1,c0_mvpcontrol > 8065661c: 000000c0 ehb > 80656620: 01c0c02d 0x1c0c02d > 80656624: 240d0000 li t5,0 > 80656628: 31c80001 andi t0,t6,0x1 > 8065662c: 1100002b beqz t0,806566dc <mips_cps_boot_vpes+0x108> > 80656630: 00000000 nop > > So it can't decode that "01c0c02d"... Well, `objdump -mmips:isa64r2 -d' reveals this: 80000000: 01c0c02d move t8,t6 and then `objdump -mmips:isa64r2 -M no-aliases -d' further shows this: 80000000: 01c0c02d daddu t8,t6,zero which is a 64-bit instruction, so clearly the temporary `.set' override spans too much (we have updated GAS recently to emit machine code for OR rather than ADDU/DADDU as the expansion for the MOVE assembly idiom to minimise impact from such issues though; ADDU/DADDU would schedule better with old superscalar MIPS processors, but that is not an issue with the modern ones, I'm told). HTH, Maciej