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], V4.1, patch #2: Add prefixed insn attribute (revised)


Hi!

On Tue, Sep 24, 2019 at 02:10:10AM -0400, Michael Meissner wrote:
> +/* Return true if the address is a prefixed instruction that can be directly
> +   used in a memory instruction (i.e. using numeric offset or a PC-relative
> +   reference to a local symbol).

This could use a bit of a rewrite...  "Return whether the address is valid
for a prefixed memory instruction [...]"?

> +      /* Use the default pattern for loading up PC-relative addresses.  */
> +      if (TARGET_PCREL && mode == Pmode
> +	  && (SYMBOL_REF_P (operands[1]) || LABEL_REF_P (operands[1])
> +	      || GET_CODE (operands[1]) == CONST))

Maybe this can use some predicate function?  That will make the CONST
stand out more as being the special case here, too?

> +  unsigned int r = reg_or_subregno (reg);
> +
> +  /* If we have a pseudo, use the default instruction format.  */
> +  if (r >= FIRST_PSEUDO_REGISTER)
> +    return NON_PREFIXED_DEFAULT;

Please use

  if (!HARD_REGISTER_NUM_P (r))

> +	 (eq_attr "type" "load,fpload,vecload")
> +	 (if_then_else (and (eq_attr "indexed" "no")
> +			    (eq_attr "update" "no")
> +			    (match_test "prefixed_load_p (insn)"))
> +		       (const_string "yes")
> +		       (const_string "no"))

It looks like prefixed_load_p and prefixed_store_p should test for
"indexed" "no" and "update" "no" themselves?  The code here simplifies
a bit then.

(blank line before the default case please).

> +	(const_string "no")))


Okay for trunk with those things fixed.  Thanks!


Segher


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