This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

adding movz to machine description


----- Original Message ----- From: "Ian Lance Taylor" <iant@google.com>

What do you mean when you say that the instruction is not generated?
Your code looks OK.  Look at the .expand debugging dump (use -da to
generate all the RTL debugging dump files); do you see the instruction
there?  If so, trace it forward to see what happens to it.

Ian


It's not generated, like it's not in the asm code. Instead, movsi_insn is used and bad asm code is generated.

for c code :
if (in1 == 0)
   out = in2;
return out;

I expect asm to look like this
lw r2,4(r30)  ; in2
lw r16,(r30)  ; in1
movz r1, r2, r16

instead, code looks like this

lw r2,4(r30)
lw r16,(r30)
movz r1,r2,r16
movn r1,r16,r16

expand debug file is in attach, I don't see that movsicc_expand is used...
(although this is my first time to look at expand files)
movsicc_insn first appears in short.c.11.ce1

can you see why pattern is not matched with expand?

Attachment: short.c.00.expand
Description: Binary data

Attachment: short.c.11.ce1
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]