Hi, Thanks for answer but Im not able to make it work; I dont know how to extract the specific slot-usage (out of a number of an alternatives) out of the RTL insn description. Is there some get_attr_ for this?
--- On Wed, 12/3/08, Bingfeng Mei <[EMAIL PROTECTED]> wrote: > From: Bingfeng Mei <[EMAIL PROTECTED]> > Subject: RE: generate assembly mnemonic depending the resource allocation > To: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>, "gcc@gcc.gnu.org" > <gcc@gcc.gnu.org> > Date: Wednesday, December 3, 2008, 3:00 PM > You can use C statements to return a modified template > string such like > (define_insn "addsi3" > [(set (match_operand:SI 0 > "general_register_operand" "=d") > (plus:SI (match_operand:SI 1 > "general_register_operand" "d") > (match_operand:SI 2 > "general_register_operand" "d")))] > "" > { > switch (slot-used){ > case 0: > return "add-slot0, %0, %1, %2"; > case 1: > return "add-slot1, %0, %1, %2"; > case 2: > return "add-slot1, %0, %1, %2"; > } > } > [(set_attr "type" "alu") > (set_attr "mode" "SI") > (set_attr "length" "1")]) > > > -----Original Message----- > > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > > Behalf Of Alex Turjan > > Sent: 03 December 2008 10:34 > > To: gcc@gcc.gnu.org > > Subject: generate assembly mnemonic depending the > resource allocation > > > > Hi all, > > Im building a gcc target for a vliw machine that can > execute > > the same instruction on different resources (slots) > and > > depending on which resources are allocate the > instruction > > must have a different mnemonic. Is it possible in gcc > to have > > for the same define_insn constraints (depending on the > > > allocated architecture resources) different assembly > instructions? > > > > Here is an example: > > Consider the following addSI RTL pattern: > > (define_insn "addsi3" > > [(set (match_operand:SI 0 > "general_register_operand" "=d") > > (plus:SI (match_operand:SI 1 > "general_register_operand" "d") > > (match_operand:SI 2 > > "general_register_operand" "d")))] > > "" > > "add %0,%1,%2%" > > [(set_attr "type" "alu") > > (set_attr "mode" "SI") > > (set_attr "length" "1")]) > > > > On my target machine "alu" is a reservation > that occupies one > > of the following 3 slots: > "slot1|slot2|slot3" and, I need to > > generate assembly code with different mnemonic > depending on > > which slot the instruction was scheduled: > > > > add-slot1 %0,%1,%2% // if scheduled on slot 1 > > add-slot2 %0,%1,%2% // if scheduled on slot 2 > > add-slot3 %0,%1,%2% // if scheduled on slot 3 > > > > Alex > > > > > > > > > > > > > > > > > > > > > > > > > > > >