This is the mail archive of the gcc@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]

x86 earlyclobber and matching constraints


How should you describe a situation where the input and
output operands must match in addition to the output being an
earlyclobber?  Currently the x86 has:

(define_insn "ashrdi3_const_int"
  [(set (match_operand:DI 0 "register_operand" "=&r")
        (ashiftrt:DI (match_operand:DI 1 "register_operand" "0")
                     (match_operand:QI 2 "const_int_operand" "J")))]
  "CONST_OK_FOR_LETTER_P (INTVAL (operands[2]), 'J')"

What actually happens is that the highpart is shifted into the lowpart
and then the highpart is shifted by itself.  Isn't specifying an earlyclobber
on a matching constraint confusing since it says that the output register
can not overlap the input in addition to saying the input and output must
match?  Should the earlyclobber be dropped?

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------



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