arm.md (VUNSPEC_PREFETCH): Delete constant definition.
authorRichard Earnshaw <rearnsha@arm.com>
Sat, 8 Dec 2001 11:16:59 +0000 (11:16 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Sat, 8 Dec 2001 11:16:59 +0000 (11:16 +0000)
* 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
gcc/config/arm/arm.c
gcc/config/arm/arm.h
gcc/config/arm/arm.md

index 37eed35597fcba0cd75c108010f6e50cfc466d33..aa484d773de1764e2451b55f90e135df558d8d48 100644 (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>
 
        * final.c (cleanup_subreg_operands):  Use recog_data.operand_loc
index 5edaa1d2aa39b7544e2ff9bf3f627555eb895122..c9e20d39088617d178482fed374d2d2f76f472cb 100644 (file)
@@ -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.  */
index 5a989925dee8f22da5b2c902985555805edffc41..4cb0954db210b70e45d92d1f9934b9144a2aedc2 100644 (file)
@@ -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 */
index 347bc33b0b6524746a4404e143436084b4a43c79..f7d9b64d4c0e24062f9ff94a6c25d0a2eb9a03bc 100644 (file)
@@ -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.
   ]
 )
 \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