Re: [PATCH] MIPS: CPS: Fix r1 .set mt assembler warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux