64-bit by 32-bit fractional multiplication.


have to use double precision(64-bit) internal data representation  in lowpass IIR filter. So I need multiplication algorithm (in assembler) 32-bit by 64-bit signed fractional, and the result should be a 64 most significant bits from 96-bit result.

The first operation look like this:

R3:2 = R4*R0(m);    // R4 - 32-bit coefficient, R1:0 - 64-bit sample.

where R1 holds 32-bit signed fractional coefficient, and R0 unsigned low 32-bits of 64-bit fractional value, but have problem how to add R3 (signed fractional) to 64-bit result of next multiplication:

A1:0 = R4*R1;

R3 (signed fractional) must be added to unsigned A0(W) part of second result.