From fa980e6b68e8c75b842532fff4ab6ea786a1959a Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Sat, 8 Dec 2001 11:16:59 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 9 +++++++++ gcc/config/arm/arm.c | 18 ------------------ gcc/config/arm/arm.h | 1 - gcc/config/arm/arm.md | 9 ++++----- 4 files changed, 13 insertions(+), 24 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37eed35597f..aa484d773de 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2001-12-08 Richard Earnshaw + + * 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 * final.c (cleanup_subreg_operands): Use recog_data.operand_loc diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 5edaa1d2aa3..c9e20d39088 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -9151,11 +9151,6 @@ arm_init_builtins () /* 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, @@ -9203,19 +9198,6 @@ arm_expand_builtin (exp, target, subtarget, mode, ignore) 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. */ diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 5a989925dee..4cb0954db21 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -2907,7 +2907,6 @@ extern int making_const_table; enum arm_builtins { ARM_BUILTIN_CLZ, - ARM_BUILTIN_PREFETCH, ARM_BUILTIN_MAX }; #endif /* ! GCC_ARM_H */ diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 347bc33b0b6..f7d9b64d4c0 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -88,8 +88,6 @@ ; 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. ] ) @@ -9173,10 +9171,11 @@ ;; 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 -- 2.30.2