| /* | 
 |  * This file is part of GNU CC. | 
 |  * | 
 |  * GNU CC is free software; you can redistribute it and/or modify | 
 |  * it under the terms of the GNU General Public License as published | 
 |  * by the Free Software Foundation; either version 2, or (at your | 
 |  * option) any later version. | 
 |  * | 
 |  * GNU CC is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  * GNU General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU General Public | 
 |  * License along with GNU CC; see the file COPYING.  If not, write | 
 |  * to the Free Software Foundation, 59 Temple Place - Suite 330, | 
 |  * Boston, MA 02111-1307, USA. | 
 |  */ | 
 |  | 
 |  | 
 | #include <common.h> | 
 |  | 
 | #if !defined(CFG_NIOS_MULT_HW) && !defined(CFG_NIOS_MULT_MSTEP) | 
 |  | 
 | #include "math.h" | 
 |  | 
 | USItype __mulsi3 (USItype a, USItype b) | 
 | { | 
 | 	USItype c = 0; | 
 |  | 
 | 	while (a != 0) { | 
 | 		if (a & 1) | 
 | 			c += b; | 
 | 		a >>= 1; | 
 | 		b <<= 1; | 
 | 	} | 
 |  | 
 | 	return c; | 
 | } | 
 |  | 
 |  | 
 | UHItype __mulhi3 (UHItype a, UHItype b) | 
 | { | 
 | 	UHItype c = 0; | 
 |  | 
 | 	while (a != 0) { | 
 | 		if (a & 1) | 
 | 			c += b; | 
 | 		a >>= 1; | 
 | 		b <<= 1; | 
 | 	} | 
 |  | 
 | 	return c; | 
 | } | 
 |  | 
 | #endif /*!defined(CFG_NIOS_MULT_HW) && !defined(CFG_NIOS_MULT_MSTEP) */ |