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.