From 78b583fed8b7f8047020113bedea5e0dac25b033 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Mon, 26 Nov 2001 10:18:47 +0000 Subject: * regclass.c (choose_hard_reg_mode): Handle vector arguments. From-SVN: r47338 --- gcc/regclass.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gcc/regclass.c') diff --git a/gcc/regclass.c b/gcc/regclass.c index 826da242dc1..9ef8c8cdffb 100644 --- a/gcc/regclass.c +++ b/gcc/regclass.c @@ -713,6 +713,26 @@ choose_hard_reg_mode (regno, nregs) if (found_mode != VOIDmode) return found_mode; + for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_FLOAT); + mode != VOIDmode; + mode = GET_MODE_WIDER_MODE (mode)) + if (HARD_REGNO_NREGS (regno, mode) == nregs + && HARD_REGNO_MODE_OK (regno, mode)) + found_mode = mode; + + if (found_mode != VOIDmode) + return found_mode; + + for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_INT); + mode != VOIDmode; + mode = GET_MODE_WIDER_MODE (mode)) + if (HARD_REGNO_NREGS (regno, mode) == nregs + && HARD_REGNO_MODE_OK (regno, mode)) + found_mode = mode; + + if (found_mode != VOIDmode) + return found_mode; + /* Iterate over all of the CCmodes. */ for (m = (unsigned int) CCmode; m < (unsigned int) NUM_MACHINE_MODES; ++m) { -- cgit v1.2.1