Floating point promotion was broken since the IR float change. Fix.
This commit is contained in:
		
							parent
							
								
									36cddd6afb
								
							
						
					
					
						commit
						38de688c5a
					
				
					 2 changed files with 14 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -41,14 +41,12 @@ static void promote(struct ir* ir)
 | 
			
		|||
            break;
 | 
			
		||||
 | 
			
		||||
        case IR_PHI:
 | 
			
		||||
            if (!array_appendu(&promotable, ir))
 | 
			
		||||
            {
 | 
			
		||||
                if (ir->left)
 | 
			
		||||
                    promote(ir->left);
 | 
			
		||||
                if (ir->right)
 | 
			
		||||
                    promote(ir->right);
 | 
			
		||||
            }
 | 
			
		||||
        {
 | 
			
		||||
            int i;
 | 
			
		||||
            for (i=0; i<ir->u.phivalue.count; i++)
 | 
			
		||||
                array_appendu(&promotable, ir->u.phivalue.item[i].right);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -328,17 +328,21 @@ PATTERNS
 | 
			
		|||
		emit "la %out, $value"
 | 
			
		||||
		cost 8;
 | 
			
		||||
 | 
			
		||||
	out:(int)reg = value:CONSTF4
 | 
			
		||||
		emit "lfs %out, address-containing-$value"
 | 
			
		||||
		cost 8;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* FPU operations */
 | 
			
		||||
 | 
			
		||||
	out:(float)reg = value:CONSTF4
 | 
			
		||||
		emit "lfs %out, address-containing-$value"
 | 
			
		||||
		cost 8;
 | 
			
		||||
 | 
			
		||||
	out:(float)reg = ADDF4(left:(float)reg, right:(float)reg)
 | 
			
		||||
		emit "fadds %out, %left, %right"
 | 
			
		||||
		cost 4;
 | 
			
		||||
 | 
			
		||||
	out:(float)reg = SUBF4(left:(float)reg, right:(float)reg)
 | 
			
		||||
		emit "fsubs %out, %left, %right"
 | 
			
		||||
		cost 4;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* vim: set sw=4 ts=4 expandtab : */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue