Commit b55d9ff8 by Richard Kenner

(assign_temp): Add extra arg, DONT_PROMOTE.

Don't return (const_int 0) for VOIDmode.

From-SVN: r10923
parent eb7102fe
...@@ -922,13 +922,16 @@ assign_stack_temp (mode, size, keep) ...@@ -922,13 +922,16 @@ assign_stack_temp (mode, size, keep)
/* Assign a temporary of given TYPE. /* Assign a temporary of given TYPE.
KEEP is as for assign_stack_temp. KEEP is as for assign_stack_temp.
MEMORY_REQUIRED is 1 if the result must be addressable stack memory; MEMORY_REQUIRED is 1 if the result must be addressable stack memory;
it is 0 if a register is OK. */ it is 0 if a register is OK.
DONT_PROMOTE is 1 if we should not promote values in register
to wider modes. */
rtx rtx
assign_temp (type, keep, memory_required) assign_temp (type, keep, memory_required, dont_promote)
tree type; tree type;
int keep; int keep;
int memory_required; int memory_required;
int dont_promote;
{ {
enum machine_mode mode = TYPE_MODE (type); enum machine_mode mode = TYPE_MODE (type);
int unsignedp = TREE_UNSIGNED (type); int unsignedp = TREE_UNSIGNED (type);
...@@ -952,11 +955,9 @@ assign_temp (type, keep, memory_required) ...@@ -952,11 +955,9 @@ assign_temp (type, keep, memory_required)
return tmp; return tmp;
} }
if (mode == VOIDmode)
return const0_rtx;
#ifndef PROMOTE_FOR_CALL_ONLY #ifndef PROMOTE_FOR_CALL_ONLY
mode = promote_mode (type, mode, &unsignedp, 0); if (! dont_promote)
mode = promote_mode (type, mode, &unsignedp, 0);
#endif #endif
return gen_reg_rtx (mode); return gen_reg_rtx (mode);
......
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