/* * 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 [31mCONFIG_ARITHMETIC_OPS_L1[0m .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 |