Bitfield insert and extract instructions are not generated

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

 



Hi,



I have added bitfield insert and bitfield extract instructions for
risc target like below..



(define_expand "insv"

  [(set (zero_extract:SI (match_operand 0 "register_operand" "+r")

                         (match_operand 1 "const_int_M_operand" "S")

                         (match_operand 2 "const_int_M_operand" "S"))

        (match_operand 3 "register_operand" "r"))]

 "TARGET_HAS_BITFIELD"







(define_insn "insv_32"

  [(set (zero_extract (match_operand 0 "register_operand" "+r")

                         (match_operand 1 "const_int_M_operand" "S")

                         (match_operand 2 "const_int_M_operand" "S"))

        (match_operand 3 "register_operand" "r"))]

 "TARGET_HAS_BITFIELD && UINTVAL (operands[1]) > 0

   && UINTVAL (operands[1]) + UINTVAL (operands[2]) <= 32"

  "bsi %0, %3, %1, %2"





(define_constraint "S"

  "A constant in the range 0 to 31 (inclusive)."

  (and (match_code "const_int")

       (match_test "ival > 0 && ival < 0x20")))



but I didn't see the bitfield insert instruction when I compiled a c
code which has structure bitfield assignments. I have seen a
combination of ori and andi instructions where as in ARM,I have seen
the bitfield insert instruction.





any suggestions?





Thanks,

Mahesh



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux