mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-30 02:34:44 +08:00
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:
parent
fd9245b7ec
commit
fa980e6b68
@ -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
|
||||||
|
@ -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. */
|
||||||
|
@ -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 */
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user