Class SVM_SHIFT
java.lang.Object
svm.instruction.SVM_Instruction
svm.instruction.SVM_SHIFT
SVM-INSTRUCTION: SHIFT opr
Runtime Stack
..., sos, tos →
..., result
The 'tos' and 'sos' are popped off the Runtime stack. The 'result' is calculated as result = sos opr tos. Then the 'result' is pushed onto the Runtime Stack.
'tos' and 'sos' must be of type int.
The operation depends on the 'opr' parameter:
LSHIFTA: Signed Left Shift << The left shift operator moves all bits by a given number of bits to the left. LSHIFTL: Unsigned Left Shift << The left shift operator moves all bits by a given number of bits to the left. RSHIFTA: Signed Right Shift >> The right shift operator moves all bits by a given number of bits to the right. RSHIFTL: Unsigned Right Shift >>> It is the same as the signed right shift, but the vacant leftmost position is filled with 0 instead of the sign bit.
Link to GitHub: Source File.
- Author:
- S-Port: Definition of S-code, Øystein Myhre Andersen
-
Field Summary
FieldsFields inherited from class SVM_Instruction
iADD, iADDREG, iAND, iASSIGN, iCALL, iCALLSYS, iCOMPARE, iCONVERT, iDECO, iDIST, iDIV, iDUP, iENTER, iEQV, iGETO, iGOTO, iIMP, iINCO, iINITO, iJUMP, iJUMPIF, iLINE, iLOAD, iLOADA, iMax, iMULT, iNEG, iNOOP, iNOT, iOR, iPOPK, iPRECALL, iPUSHC, iPUSHLEN, iPUSHR, iREM, iRESTORE, iRETURN, iSAVE, iSETO, iSHIFT, iSTORE, iSUB, iSWITCH, iXOR, opcode -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidexecute()Execute this SVM instructionstatic SVM_SHIFTread(AttributeInputStream inpt) Reads an SVM_SHIFT instruction from the given input.toString()voidwrite(AttributeOutputStream oupt) Write this SVM instruction to the given output.Methods inherited from class SVM_Instruction
edOpcode, readObject
-
Field Details
-
instr
int instrWhich shift instruction
-
-
Constructor Details
-
SVM_SHIFT
public SVM_SHIFT(int instr) Construct a new SVM_SHIFT instruction- Parameters:
instr- which shift instruction
-
-
Method Details
-
execute
public void execute()Description copied from class:SVM_InstructionExecute this SVM instruction- Overrides:
executein classSVM_Instruction
-
toString
-
write
Description copied from class:SVM_InstructionWrite this SVM instruction to the given output.- Overrides:
writein classSVM_Instruction- Parameters:
oupt- the output stream- Throws:
IOException- if IOException occur
-
read
Reads an SVM_SHIFT instruction from the given input.- Parameters:
inpt- the input stream- Returns:
- the SVM_SHIFT instruction read
- Throws:
IOException- if IOException occur
-