! File: ROTSHI.B11 ! ! This work was supported by the Advanced Research ! Projects Agency of the Office of the Secretary of ! Defense (F44620-73-C-0074) and is monitored by the ! Air Force Office of Scientific Research. MODULE ROTSHIFT= BEGIN %< The BLISS-11 out of line shift and rotate routines >% ! As specified by the BLISS-11 definition, shifts are ! arithmetic (sign-extending) and rotates include the hardware ! carry bit. Further details of the operation of the shift and ! rotate operations are implicit in the definitions of the ! PDP-11 hardware instructions ASL, ASR, ROL, and ROR. ! ! March 1973 ! R. Levin ! R. Johnsson GLOBAL ROUTINE ROTATE(THING,NO)= BEGIN REGISTER V; V_.THING; IF .NO LSS 0 THEN INCR I FROM .NO+1 TO 0 DO V_.V ROT (-1) ELSE DECR I FROM .NO-1 TO 0 DO V_.V ROT 1; .V END; GLOBAL ROUTINE SHIFT(THING,NO)= BEGIN REGISTER V; V_.THING; IF .NO LSS 0 THEN INCR I FROM .NO+1 TO 0 DO V_.V^(-1) ELSE DECR I FROM .NO-1 TO 0 DO V_.V^1; .V END; END