diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4606723808..f5b81e05512 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2002-01-24 Aldy Hernandez + + * loop.c (emit_prefetch_instructions): Use the prefetch insn's + mode, not Pmode. + + * builtins.c (expand_builtin_prefetch): Same. + 2002-01-24 Alexandre Oliva * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have diff --git a/gcc/builtins.c b/gcc/builtins.c index 404bf46a004..9d308aeaff0 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -785,7 +785,8 @@ expand_builtin_prefetch (arglist) if (HAVE_prefetch) { if (! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) - (op0, Pmode)) + (op0, + insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) op0 = force_reg (Pmode, op0); emit_insn (gen_prefetch (op0, op1, op2)); } diff --git a/gcc/loop.c b/gcc/loop.c index 3f874a8652a..ebd59af59ff 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -4023,7 +4023,8 @@ emit_prefetch_instructions (loop) /* Make sure the address operand is valid for prefetch. */ if (! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) - (loc, Pmode)) + (loc, + insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) loc = force_reg (Pmode, loc); emit_insn_before (gen_prefetch (loc, GEN_INT (info[i].write), GEN_INT (3)),