Pseudo-code:
- dividend[0:31] <- (RA) [32:63]
- divisor [0:31] <- (RB) [32:63]
- if divisor = [0]*32 then
- RT[0:63] <- undefined([0]*64)
+ dividend[0:(XLEN/2)-1] <- (RA)[XLEN/2:63]
+ divisor [0:(XLEN/2)-1] <- (RB)[XLEN/2:63]
+ if divisor = [0]*(XLEN/2) then
+ RT[0:XLEN-1] <- undefined([0]*64)
overflow <- 1
else
- RT[32:63] <- dividend % divisor
- RT[0:31] <- undefined([0]*32)
+ RT[XLEN/2:XLEN-1] <- dividend % divisor
+ RT[0:(XLEN/2)-1] <- undefined([0]*(XLEN/2))
overflow <- 0
Special Registers Altered: