|  | /* | 
|  | * Copyright 2007 Analog Devices Inc. | 
|  | * | 
|  | * Licensed under the Clear BSD license or the GPL-2 (or later) | 
|  | */ | 
|  |  | 
|  | .align 2 | 
|  | .global ___smulsi3_highpart; | 
|  | .type ___smulsi3_highpart, STT_FUNC; | 
|  |  | 
|  | #ifdef CONFIG_ARITHMETIC_OPS_L1 | 
|  | .section .l1.text | 
|  | #else | 
|  | .text | 
|  | #endif | 
|  |  | 
|  | ___smulsi3_highpart: | 
|  | R2 = R1.L * R0.L (FU); | 
|  | R3 = R1.H * R0.L (IS,M); | 
|  | R0 = R0.H * R1.H, R1 = R0.H * R1.L (IS,M); | 
|  |  | 
|  | R1.L = R2.H + R1.L; | 
|  | cc = ac0; | 
|  | R2 = cc; | 
|  |  | 
|  | R1.L = R1.L + R3.L; | 
|  | cc = ac0; | 
|  | R1 >>>= 16; | 
|  | R3 >>>= 16; | 
|  | R1 = R1 + R3; | 
|  | R1 = R1 + R2; | 
|  | R2 = cc; | 
|  | R1 = R1 + R2; | 
|  |  | 
|  | R0 = R0 + R1; | 
|  | RTS; | 
|  |  | 
|  | .size ___smulsi3_highpart, .-___smulsi3_highpart |