Commit 3620944c by Richard Sandiford Committed by Richard Sandiford

sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA...

	* config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
	class contains a floating-point register, return the size of the
	mode in half words.

From-SVN: r61966
parent 95fcd0ab
2003-01-28 Richard Sandiford <rsandifo@redhat.com>
* config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
class contains a floating-point register, return the size of the
mode in half words.
Tue Jan 28 12:15:13 CET 2003 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_carry_flag_operator): New predicate.
......
......@@ -1382,9 +1382,13 @@ extern enum reg_class reg_class_from_letter[];
/* Return the maximum number of consecutive registers
needed to represent mode MODE in a register of class CLASS.
On SH this is the size of MODE in words. */
If TARGET_SHMEDIA, we need two FP registers per word.
Otherwise we will need at most one register per word. */
#define CLASS_MAX_NREGS(CLASS, MODE) \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
(TARGET_SHMEDIA \
&& TEST_HARD_REG_BIT (reg_class_contents[CLASS], FIRST_FP_REG) \
? (GET_MODE_SIZE (MODE) + UNITS_PER_WORD/2 - 1) / (UNITS_PER_WORD/2) \
: (GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
/* If defined, gives a class of registers that cannot be used as the
operand of a SUBREG that changes the mode of the object illegally. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment