# [DRAFT] Floating Add FFT/DCT [Single] A-Form * ffadds FRT,FRA,FRB (Rc=0) * ffadds. FRT,FRA,FRB (Rc=1) Pseudo-code: FRT <- FPADD32(FRA, FRB) FRS <- FPSUB32(FRB, FRA) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Add FFT/DCT [Double] A-Form * ffadd FRT,FRA,FRB (Rc=0) * ffadd. FRT,FRA,FRB (Rc=1) Pseudo-code: FRT <- FPADD64(FRA, FRB) FRS <- FPSUB64(FRB, FRA) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Subtract FFT/DCT [Single] A-Form * ffsubs FRT,FRA,FRB (Rc=0) * ffsubs. FRT,FRA,FRB (Rc=1) Pseudo-code: FRT <- FPSUB32(FRB, FRA) FRS <- FPADD32(FRA, FRB) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Subtract FFT/DCT [Double] A-Form * ffsub FRT,FRA,FRB (Rc=0) * ffsub. FRT,FRA,FRB (Rc=1) Pseudo-code: FRT <- FPSUB64(FRB, FRA) FRS <- FPADD64(FRA, FRB) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Multiply FFT/DCT [Single] A-Form * ffmuls FRT,FRA,FRC (Rc=0) * ffmuls. FRT,FRA,FRC (Rc=1) Pseudo-code: FRT <- FPMUL32(FRA, FRC) FRS <- FPMUL32(FRA, FRC, -1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Multiply FFT/DCT [Double] A-Form * ffmul FRT,FRA,FRC (Rc=0) * ffmul. FRT,FRA,FRC (Rc=1) Pseudo-code: FRT <- FPMUL64(FRA, FRC) FRS <- FPMUL64(FRA, FRC, -1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Divide FFT/DCT [Single] A-Form * ffdivs FRT,FRA,FRB (Rc=0) * ffdivs. FRT,FRA,FRB (Rc=1) Pseudo-code: FRT <- FPDIV32(FRA, FRB) FRS <- FPDIV32(FRA, FRB, -1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Divide FFT/DCT [Double] A-Form * ffdiv FRT,FRA,FRB (Rc=0) * ffdiv. FRT,FRA,FRB (Rc=1) Pseudo-code: FRT <- FPDIV64(FRA, FRB) FRS <- FPDIV64(FRA, FRB, -1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI CR1 (if Rc=1) # [DRAFT] Floating Twin Multiply-Add DCT [Single] DCT-Form * fdmadds FRT,FRA,FRB (Rc=0) * fdmadds. FRT,FRA,FRB (Rc=1) Pseudo-code: FRS <- FPADD32(FRT, FRB) sub <- FPSUB32(FRT, FRB) FRT <- FPMUL32(FRA, sub) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ CR1 (if Rc=1) # [DRAFT] Floating Multiply-Add FFT [Single] A-Form * ffmadds FRT,FRA,FRB (Rc=0) * ffmadds. FRT,FRA,FRB (Rc=1) Pseudo-code: tmp <- FRT FRT <- FPMULADD32(tmp, FRA, FRB, 1, 1) FRS <- FPMULADD32(tmp, FRA, FRB, -1, 1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ CR1 (if Rc=1) # [DRAFT] Floating Multiply-Sub FFT [Single] A-Form * ffmsubs FRT,FRA,FRB (Rc=0) * ffmsubs. FRT,FRA,FRB (Rc=1) Pseudo-code: tmp <- FRT FRT <- FPMULADD32(tmp, FRA, FRB, 1, -1) FRS <- FPMULADD32(tmp, FRA, FRB, -1, -1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ CR1 (if Rc=1) # [DRAFT] Floating Negative Multiply-Add FFT [Single] A-Form * ffnmadds FRT,FRA,FRB (Rc=0) * ffnmadds. FRT,FRA,FRB (Rc=1) Pseudo-code: tmp <- FRT FRT <- FPMULADD32(tmp, FRA, FRB, -1, -1) FRS <- FPMULADD32(tmp, FRA, FRB, 1, -1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ CR1 (if Rc=1) # [DRAFT] Floating Negative Multiply-Sub FFT [Single] A-Form * ffnmsubs FRT,FRA,FRB (Rc=0) * ffnmsubs. FRT,FRA,FRB (Rc=1) Pseudo-code: tmp <- FRT FRT <- FPMULADD32(tmp, FRA, FRB, -1, 1) FRS <- FPMULADD32(tmp, FRA, FRB, 1, 1) Special Registers Altered: FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ CR1 (if Rc=1)