Software Considerations A–13
The general sequence is:
LDA Rdst, low(R31)
LDAH Rdst, extra(Rdst) ! Omit if extra=0
LDAH Rdst, high(Rdst) ! Omit if high=0
A.4.4.4 Register-to-Register Move
The standard register move forms are:
MOV RX,RY == BIS RX,RX,RY
FMOV FX,FY == CPYS FX,FX,FY
These move forms generate no exceptions. In most implementations, these should encounter no
functional unit issue delay.
A.4.4.5 Negate
The standard register negate forms are:
NEGz Rx,Ry == SUBz R31,Rx,Ry ! z = L or Q
NEGz Fx,Fy == SUBz F31,Fx,Fy ! z = F G S or T
FNEGz Fx,Fy == CPYSN Fx,Fx,Fy ! z = F G S or T
The integer subtract generates no Integer Overflow trap if Rx contains the largest negative
number (SUBz/V would trap). The floating subtract generates a floating-point exception for a
non-finite value in Fx. The CPYSN form generates no exceptions.
A.4.4.6 NOT
The standard integer register NOT form is:
NOT Rx,Ry == ORNOT R31,Rx,Ry
This generates no exceptions. In most implementations, this should encounter no functional
unit issue delay.
A.4.4.7 Booleans
The standard alternative to BIS is:
OR Rx,Ry,Rz == BIS Rx,Ry,Rz
The standard alternative to BIC is:
ANDNOT Rx,Ry,Rz == BIC Rx,Ry,Rz
The standard alternative to EQV is:
XORNOT Rx,Ry,Rz == EQV Rx,Ry,Rz