mirror of
https://github.com/corda/corda.git
synced 2025-02-02 09:18:13 +00:00
use mulhwu and eliminate temporary in 64-bit multiplyRR
This commit is contained in:
parent
77195713b8
commit
3e495b8ca5
@ -681,14 +681,12 @@ void subC(Context* con, unsigned size, Const* a, Reg* b, Reg* t) {
|
|||||||
|
|
||||||
void multiplyR(Context* con, unsigned size, Reg* a, Reg* b, Reg* t) {
|
void multiplyR(Context* con, unsigned size, Reg* a, Reg* b, Reg* t) {
|
||||||
if(size == 8) {
|
if(size == 8) {
|
||||||
Reg tmp(getTemp(con));
|
|
||||||
issue(con, mullw(H(t), H(a), R(b)));
|
issue(con, mullw(H(t), H(a), R(b)));
|
||||||
issue(con, mullw(R(&tmp), R(a), H(b)));
|
issue(con, mullw(R(t), R(a), H(b)));
|
||||||
issue(con, add(H(t), H(t), R(&tmp)));
|
issue(con, add(H(t), H(t), R(t)));
|
||||||
issue(con, mulhw(R(&tmp), R(a), R(b)));
|
issue(con, mulhwu(R(t), R(a), R(b)));
|
||||||
issue(con, add(H(t), H(t), R(&tmp)));
|
issue(con, add(H(t), H(t), R(t)));
|
||||||
issue(con, mullw(R(t), R(a), R(b)));
|
issue(con, mullw(R(t), R(a), R(b)));
|
||||||
freeTemp(con, R(&tmp));
|
|
||||||
} else {
|
} else {
|
||||||
issue(con, mullw(R(t), R(a), R(b)));
|
issue(con, mullw(R(t), R(a), R(b)));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user