diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2001-12-08 11:16:59 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2001-12-08 11:16:59 +0000 |
commit | fa980e6b68e8c75b842532fff4ab6ea786a1959a (patch) | |
tree | f7f5769d63bfb75089fc454b28744cf0be1262b4 | |
parent | fd9245b7ecffdca8ee3fa8adb4db82097470aec7 (diff) | |
download | gcc-fa980e6b68e8c75b842532fff4ab6ea786a1959a.zip gcc-fa980e6b68e8c75b842532fff4ab6ea786a1959a.tar.gz gcc-fa980e6b68e8c75b842532fff4ab6ea786a1959a.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 18 | ||||
-rw-r--r-- | gcc/config/arm/arm.h | 1 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 9 |
4 files changed, 13 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37eed35..aa484d7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 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 in test for a subreg. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 5edaa1d..c9e20d3 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 5a98992..4cb0954 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 347bc33..f7d9b64 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 |