Lines Matching refs:product
48 * Implement an integer multiply routine for 32-bit operands and 64-bit product
51 * from right to left, to generate partial product. Execution speed is more
59 pu: .equ 3 /* upper part of product */
60 pl: .equ 4 /* lower part of product */
65 sign: .equ 8 /* sign of product */
66 pc: .equ 9 /* carry bit of product, = 00...01 */
87 xor op2,op1,sign ; sign(0) = sign of product
89 addi 0,gr0,pu ; clear product
90 addib,= 0,op1,fini0 ; op1 = 0, product = 0
98 sh4n: shd pu,pl,4,pl ; shift product right 4 bits
111 ; ---- bits = 0000 ---- shift product 4 bits -------------------------------
114 shd pu,pl,4,pl ; product right 4 bits
118 addb,tr op1,pu,sh4n+4 ; add op1 to product, to shift
119 shd pu,pl,4,pl ; product right 4 bits
124 addb,uv op1,pu,sh4c ; product right 4 bits
129 sh1add,nsv op1,pu,pu ; product right 4 bits
134 shd pu,pl,2,pl ; shift product 2 bits
138 addb,tr op1,pu,sh2us ; add op1 to product
155 shd pu,pl,3,pl ; shift product right 3 bits
220 b signs ; negate product (if needed)
221 bb,>=,n sign,0,fini ; test sign of product
231 sh3c: shd pu,pl,3,pl ; shift product 3 bits
252 bb,>=,n sign,0,fini ; test sign of product
266 sub pu,op1,pu ; subtract op1 from product
273 sub pu,op1,pu ; subtract op1 from product
278 fini0: movib,tr,n 0,pl,fini ; product = 0 as op1 = 0
286 addb,tr op1,pu,sh2a ; add op1 to product
290 addb,tr op1,pu,sh2a ; add op1 to product
296 mulend: bb,>=,n sign,0,fini ; test sign of product
297 signs: sub 0,pl,pl ; negate product if sign