aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2001-12-08 11:16:59 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2001-12-08 11:16:59 +0000
commitfa980e6b68e8c75b842532fff4ab6ea786a1959a (patch)
treef7f5769d63bfb75089fc454b28744cf0be1262b4
parentfd9245b7ecffdca8ee3fa8adb4db82097470aec7 (diff)
downloadgcc-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/ChangeLog9
-rw-r--r--gcc/config/arm/arm.c18
-rw-r--r--gcc/config/arm/arm.h1
-rw-r--r--gcc/config/arm/arm.md9
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