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

Re: PATCH: PR target/44588: Very inefficient 8bit mod/div


On 06/23/2010 09:35 PM, H.J. Lu wrote:
On Wed, Jun 23, 2010 at 12:16 PM, Paolo Bonzini<bonzini@gnu.org> wrote:
On 06/23/2010 08:24 PM, H.J. Lu wrote:

[(set (match_operand:HI 0 "register_operand" "=a") (div:HI (match_operand:HI 1 "register_operand" "0") (match_operand:QI 2 "nonimmediate_operand" "qm"))) (clobber (reg:CC FLAGS_REG))]

Maybe this:


[(set (match_operand:QI 0 "register_operand" "=a")
   (subreg:QI
    (div:HI
     (match_operand:HI 1 "register_operand" "0")
     (match_operand:QI 2 "nonimmediate_operand" "qm")) 0))
  (clobber (reg:CC FLAGS_REG))]


It doesn't make a big difference since only lower 8bit is set by it.

For full divmod you have to shift mod and ior of course. I understood that you were talking of *<u>divqi3.


Paolo


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