|
|
|
|
205
|
// intRes = longIn1 * longIn2 >> 24
|
205
|
// intRes = longIn1 * longIn2 >> 24
|
206
|
// uses:
|
206
|
// uses:
|
207
|
// r26 to store 0
|
207
|
// r26 to store 0
|
208
|
-// r27 to store the byte 1 of the 48bit result
|
|
|
209
|
-// intRes = longIn1 * longIn2 >> 24
|
|
|
210
|
-// uses:
|
|
|
211
|
-// r26 to store 0
|
|
|
212
|
// r27 to store bits 16-23 of the 48bit result. The top bit is used to round the two byte result.
|
208
|
// r27 to store bits 16-23 of the 48bit result. The top bit is used to round the two byte result.
|
213
|
// note that the lower two bytes and the upper byte of the 48bit result are not calculated.
|
209
|
// note that the lower two bytes and the upper byte of the 48bit result are not calculated.
|
214
|
// this can cause the result to be out by one as the lower bytes may cause carries into the upper ones.
|
210
|
// this can cause the result to be out by one as the lower bytes may cause carries into the upper ones.
|