arm.md (VUNSPEC_PREFETCH): Delete constant definition.

* 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
This commit is contained in:
Richard Earnshaw 2001-12-08 11:16:59 +00:00 committed by Richard Earnshaw
parent fd9245b7ec
commit fa980e6b68
4 changed files with 13 additions and 24 deletions

View File

@ -1,3 +1,12 @@
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> 2001-12-08 Richard Earnshaw <rearnsha@arm.com>
* final.c (cleanup_subreg_operands): Use recog_data.operand_loc * final.c (cleanup_subreg_operands): Use recog_data.operand_loc

View File

@ -9151,11 +9151,6 @@ arm_init_builtins ()
/* Initialize arm V5 builtins. */ /* Initialize arm V5 builtins. */
if (arm_arch5) if (arm_arch5)
def_builtin ("__builtin_clz", int_ftype_int, ARM_BUILTIN_CLZ); 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, /* Expand an expression EXP that calls a built-in function,
@ -9203,19 +9198,6 @@ arm_expand_builtin (exp, target, subtarget, mode, ignore)
return 0; return 0;
emit_insn (pat); emit_insn (pat);
return target; 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. */ /* @@@ Should really do something sensible here. */

View File

@ -2907,7 +2907,6 @@ extern int making_const_table;
enum arm_builtins enum arm_builtins
{ {
ARM_BUILTIN_CLZ, ARM_BUILTIN_CLZ,
ARM_BUILTIN_PREFETCH,
ARM_BUILTIN_MAX ARM_BUILTIN_MAX
}; };
#endif /* ! GCC_ARM_H */ #endif /* ! GCC_ARM_H */

View File

@ -88,8 +88,6 @@
; a 32-bit object. ; a 32-bit object.
(VUNSPEC_POOL_8 7) ; `pool-entry(8)'. An entry in the constant pool for (VUNSPEC_POOL_8 7) ; `pool-entry(8)'. An entry in the constant pool for
; a 64-bit object. ; a 64-bit object.
(VUNSPEC_PREFETCH 8) ; `pld' insn to prefetch a cache line:
; operand 0 is the address to fetch.
] ]
) )
@ -9173,10 +9171,11 @@
;; V5E instructions. ;; V5E instructions.
(define_insn "prefetch" (define_insn "prefetch"
[(unspec_volatile [(prefetch (match_operand:SI 0 "address_operand" "p")
[(match_operand:SI 0 "offsettable_memory_operand" "o")] VUNSPEC_PREFETCH)] (match_operand:SI 1 "" "")
(match_operand:SI 2 "" ""))]
"TARGET_ARM && arm_arch5e" "TARGET_ARM && arm_arch5e"
"pld\\t%0") "pld\\t[%0]")
;; General predication pattern ;; General predication pattern