R

Chapter 4: MicroBlaze Instruction Set Architecture

fadd

Floating Point Arithmetic Add

fadd

rD, rA, rB

Add

0 1 0 1 1 0

rD

rA

rB

0 0 0 0 0 0 0 0 0 0 0

0

6

11

16

21

31

Description

The floating point sum of registers rA and rB, is placed into register rD.

Pseudocode

if isDnz(rA) or isDnz(rB) then (rD) 0xFFC00000

FSR[DO] 1 ESR[EC] 00110

else

if isSigNaN(rA) or isSigNaN(rB)or (isPosInfinite(rA) and isNegInfinite(rB)) or

(isNegInfinite(rA) and isPosInfinite(rB))) then (rD) 0xFFC00000

FSR[IO] 1 ESR[EC] 00110

else

if isQuietNaN(rA) or isQuietNaN(rB) then (rD) 0xFFC00000

else

if isDnz((rA)+(rB)) then (rD) signZero((rA)+(rB)) FSR[UF] 1

ESR[EC] 00110 else

if isNaN((rA)+(rB)) and then (rD) signInfinite((rA)+(rB)) FSR[OF] 1

ESR[EC] 00110 else

(rD) (rA) + (rB)

Registers Altered

rD, unless an FP exception is generated, in which case the register is unchanged

ESR[EC]

FSR[IO,UF,OF,DO]

Latency

4 cycles

Note

This instruction is only available when the MicroBlaze parameter C_USE_FPU is set to 1.

100

www.xilinx.com

MicroBlaze Processor Reference Guide

 

1-800-255-7778

UG081 (v6.0) June 1, 2006

Page 100
Image 100
Xilinx EDK 8.2i manual Floating Point Arithmetic Add Fadd, Esrec FSRIO,UF,OF,DO