On the code below, I'm storing the result of the product in a temporary
variable (fra).
inline void MTH_Vec3Scale(register MTH_tt_Vector3 *D,register const
MTH_tt_Vector3 *A, register f32 f)
{
register f32 fra;
asm ( "lfs %3, 0(%0) \n" // FRA<-
*A
"\t fmul %3, %3, %2 \n" // FRT<-
FRA
* FRC
"\t stfs %3, 0(%1) \n" // *dest =
FRT
"\t lfs %3, 4(%0) \n"
"\t fmul %3, %3, %2 \n"
"\t stfs %3, 4(%1) \n"
"\t lfs %3, 8(%0) \n"
"\t fmul %3, %3, %2 \n"
"\t stfs %3, 8(%1) \n"
/* outputs: */ :
/* inputs : */ :"b"(A),"b"(D),"f"(f),"f"(fra)
/* clobbers:*/ :"memory");
}