Files
Arquivotheca.SunOS-4.1.4/usr.etc/fpa/microcode/sps.u
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

128 lines
3.6 KiB
Plaintext

|*
|* Nop Instruction
|*
routine sp.nop w000000xxxx0 lnop sneg
; ; ; ; ;
call idle1; ; ; ; ;
|*
|* Single Precision Negate Instruction
|* Single Precision Absolute Vaulue Instruction
|*
routine sp.neg w000001xxxx0 las sneg
routine sp.abs w000010xxxx0 las sabs
call wait3; lasf fmap csla; opdsp; ; ;
; csuxa usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Fix Instruction (convert to integer)
|*
routine sp.fix w000100xxxx0 las scvtint
call wait3; lasf scvtint csla; opdsp; ; ;
; csuxa ulsw; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Float Instruction (convert to float)
|*
routine sp.float w000011xxxx0 lal sfloat
call wait3; lalf sfloat csla; opdsp; ; ;
; csuxa usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Convert Instruction
|*
routine sp.conv w000101xxxx0 las scvtd
call wait3; lasf fmap csla; opdsp; ; ;
; csuxa umsw; ; ; ;
; csuxa ulsw; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcsmsw ptr2;
; woea; dtor; ; ramwe rcslsw ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Square Instruction
|*
routine sp.sqar w000110xxxx0 las smul
call wait3; lbsf fmap cslm; opdsp; ; ;
; csuxm usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woem; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Add Instruction
|* Single Precision Subtract Instruction
|*
routine sp.add w000111xxxx0 lbs sadd
routine sp.sub w001000xxxx0 lbs ssub
call wait3; lasf fmap csla; reg; ; ;
; csuxa usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Multiply Instruction
|*
routine sp.mul w001001xxxx0 las smul
call wait3; lbsf fmap cslm; reg; ; ;
; csuxm usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woem; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Divide Instruction
|*
routine sp.div w001010xxxx0 lbs sdiv
|# (Note: 12 will cause a delay of 26)
; lasf fmap csla; reg; ; ; lpreg!12
call wait; ; ; ; ;
; ; ; ; ;
; csuxa usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Backwards Subtract Instruction
|*
routine sp.b.sub w001011xxxx0 las ssub
call wait3; lbsf fmap csla; reg; ; ;
; csuxa usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Backwards Divide Instruction
|*
routine sp.b.div w001100xxxx0 las sdiv
|# (Note: 12 will cause a delay of 26)
; lbsf fmap csla; reg; ; ; lpreg!12
call wait; ; ; ; ;
; ; ; ; ;
; csuxa usp; ; ; ;
; ; ; ; ptr2;
jwerr ser2 cstat;woea; dtor; ; ramwe rcssp ptr2;
call idle1; ; dtor; ; ramwe ptr2;
|*
|* Single Precision Compare With 0
|*
routine sp.eqlzero w001101xxxx0 las scmp0
call wait3; lasf fmap csla; opdsp; ; ;
; csuxa usp; ; ; ;
; ; ; ; ;
jwerr ser2 cstat;woea; ; ; ;
call idle1; ; ; ; ;
|*
|* Single Precision Compare Reg 1 With Operand
|* Single Precision Compare Magnitude Reg 1 With Operand
|*
routine sp.eqlreg1 w001110xxxx0 lbs scmp
routine sp.cmpreg1 w001111xxxx0 lbs scmpm
call wait3; lasf fmap csla; reg; ; ;
; csuxa usp; ; ; ;
; ; ; ; ;
jwerr ser2 cstat;woea; ; ; ;
call idle1; ; ; ; ;