* arm.md (VUNSPEC_PREFETCH): Delete constant definition.
(prefetch): Rewrite using PREFETCH RTL primitive.
* arm.h (arm_builtins): Delete ARM_BUILTIN_PREFETCH).
* arm.c (arm_init_builtins): Don't initialize a builtin for
__builtin_prefetch here.
(arm_expand_builtin): Dont expand __builtin_prefetch here.
From-SVN: r47790
+2001-12-08 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.md (VUNSPEC_PREFETCH): Delete constant definition.
+ (prefetch): Rewrite using PREFETCH RTL primitive.
+ * arm.h (arm_builtins): Delete ARM_BUILTIN_PREFETCH).
+ * arm.c (arm_init_builtins): Don't initialize a builtin for
+ __builtin_prefetch here.
+ (arm_expand_builtin): Dont expand __builtin_prefetch here.
+
2001-12-08 Richard Earnshaw <rearnsha@arm.com>
* final.c (cleanup_subreg_operands): Use recog_data.operand_loc
/* Initialize arm V5 builtins. */
if (arm_arch5)
def_builtin ("__builtin_clz", int_ftype_int, ARM_BUILTIN_CLZ);
-
- /* Initialize arm V5E builtins. */
- if (arm_arch5e)
- def_builtin ("__builtin_prefetch", void_ftype_pchar,
- ARM_BUILTIN_PREFETCH);
}
/* Expand an expression EXP that calls a built-in function,
return 0;
emit_insn (pat);
return target;
-
- case ARM_BUILTIN_PREFETCH:
- icode = CODE_FOR_prefetch;
- arg0 = TREE_VALUE (arglist);
- op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
-
- op0 = gen_rtx_MEM (SImode, copy_to_mode_reg (Pmode, op0));
-
- pat = GEN_FCN (icode) (op0);
- if (! pat)
- return 0;
- emit_insn (pat);
- return target;
}
/* @@@ Should really do something sensible here. */
enum arm_builtins
{
ARM_BUILTIN_CLZ,
- ARM_BUILTIN_PREFETCH,
ARM_BUILTIN_MAX
};
#endif /* ! GCC_ARM_H */
; a 32-bit object.
(VUNSPEC_POOL_8 7) ; `pool-entry(8)'. An entry in the constant pool for
; a 64-bit object.
- (VUNSPEC_PREFETCH 8) ; `pld' insn to prefetch a cache line:
- ; operand 0 is the address to fetch.
]
)
\f
;; V5E instructions.
(define_insn "prefetch"
- [(unspec_volatile
- [(match_operand:SI 0 "offsettable_memory_operand" "o")] VUNSPEC_PREFETCH)]
+ [(prefetch (match_operand:SI 0 "address_operand" "p")
+ (match_operand:SI 1 "" "")
+ (match_operand:SI 2 "" ""))]
"TARGET_ARM && arm_arch5e"
- "pld\\t%0")
+ "pld\\t[%0]")
;; General predication pattern