•
Idea #1: conditional move instruction
..R1 is address of fluid[i,j]
..R2 is address of U[i,j]
..R3 is address of U[i-1,j]
..F4 is 0.0
LW R4, (R1)
LD F1, (R3)
LD F2, -1(R2)
ADDD F3, F1, F2
CMOVE F5, F3, F4, R4
SD (R2), F5
if (fluid[i][j]==0) {
U[i][j] = U[i-1,j]+U[i,j-1];
} else {
U[I,j] = 0.0;
}
If R4=0, move F3 to F5, else move
F4 to F5
CMOVE F5, F3, F4, R4
25