diff options
| author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-18 15:37:51 +0000 |
|---|---|---|
| committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-18 15:37:51 +0000 |
| commit | 15cd3887a005ecf69e44a772a69f64214613a978 (patch) | |
| tree | 188ac675df942f058a0c2366fa83db75cd50b4c2 | |
| parent | 3514c10edaf2fb1bd6b8b68d5111243fe5b8069d (diff) | |
| download | ppe42-gcc-15cd3887a005ecf69e44a772a69f64214613a978.tar.gz ppe42-gcc-15cd3887a005ecf69e44a772a69f64214613a978.zip | |
* config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71526 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/config/i386/i386.c | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3f2cff37374..bd1772a779d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-09-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> + + * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand. + 2003-09-18 Roger Sayle <roger@eyesopen.com> * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 04baa3c2365..de867f3e25f 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -15621,17 +15621,22 @@ x86_extended_reg_mentioned_p (rtx insn) return for_each_rtx (&PATTERN (insn), extended_reg_mentioned_1, NULL); } -/* Generate an unsigned DImode to FP conversion. This is the same code +/* Generate an unsigned DImode/SImode to FP conversion. This is the same code optabs would emit if we didn't have TFmode patterns. */ void x86_emit_floatuns (rtx operands[2]) { rtx neglab, donelab, i0, i1, f0, in, out; - enum machine_mode mode; + enum machine_mode mode, inmode; + + inmode = GET_MODE (operands[1]); + if (inmode != SImode + && inmode != DImode) + abort (); out = operands[0]; - in = force_reg (DImode, operands[1]); + in = force_reg (inmode, operands[1]); mode = GET_MODE (out); neglab = gen_label_rtx (); donelab = gen_label_rtx (); |

