From: Steve Ellcey Date: Wed, 3 Apr 2002 02:33:07 +0000 (+0000) Subject: builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode if POINTERS_EXTEND_U... X-Git-Tag: releases/gcc-3.3.0~5937 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1e533e4b01eb29c88d4f8f09a7018eba5560b4f2;p=thirdparty%2Fgcc.git builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode if POINTERS_EXTEND_UNSIGNED is defined. * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode if POINTERS_EXTEND_UNSIGNED is defined. From-SVN: r51778 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f26b3c892484..55596999468a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-04-02 Steve Ellcey + + * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode + if POINTERS_EXTEND_UNSIGNED is defined. + 2002-04-02 Richard Henderson PR opt/3967 diff --git a/gcc/builtins.c b/gcc/builtins.c index effd70d43ed3..dcbc6dab23e5 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -787,10 +787,17 @@ expand_builtin_prefetch (arglist) #ifdef HAVE_prefetch if (HAVE_prefetch) { - if (! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) - (op0, - insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) - op0 = force_reg (Pmode, op0); + if ((! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) + (op0, + insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) || + (GET_MODE(op0) != Pmode)) + { +#ifdef POINTERS_EXTEND_UNSIGNED + if (GET_MODE(op0) != Pmode) + op0 = convert_memory_address (Pmode, op0); +#endif + op0 = force_reg (Pmode, op0); + } emit_insn (gen_prefetch (op0, op1, op2)); } else