www.pudn.com > HEC-linux.zip > shift.c


/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+                                                                   +
+  shift.c - this file implements bitwise shifting instructions     +
+				SRA, SRL, SL                                        +
+                                                                   +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

/* SRA $r1, $r2, $r3*/

#define HANDLE_SRA();	DBG_RUN0("Optimized HANDLE_SRA\n");R[RAM[R[$IP]+1]] = ((S8)R[RAM[R[$IP]+2]]) >> ((S8)R[RAM[R[$IP]+3]]);R[$IP]=R[$IP]+4;

/* SRL $r1, $r2, $r3*/

#define HANDLE_SRL();	DBG_RUN0("Optimized HANDLE_SRL\n");R[RAM[R[$IP]+1]] = R[RAM[R[$IP]+2]] >> R[RAM[R[$IP]+3]];R[$IP]=R[$IP]+4;

/* SL $r1, $r2, $r3*/

#define HANDLE_SL();	DBG_RUN0("Optimized HANDLE_SL\n");R[RAM[R[$IP]+1]] = R[RAM[R[$IP]+2]] << R[RAM[R[$IP]+3]];R[$IP]=R[$IP]+4;