Skip to content

Commit

Permalink
add some operation
Browse files Browse the repository at this point in the history
  • Loading branch information
TTENSHII committed Jan 14, 2024
1 parent c08082d commit bb5fc93
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions lvtrun/src/Run/Vm.hs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,19 @@ execOpCode _ cEx (I32Sub) = do
case (value1, value2) of
(I_32 val1, I_32 val2) -> cEx { ceStack = stackPush newStack2 (I_32 (val1 - val2)) }
_ -> throw $ WasmError "exec I32Sub: bad type"
execOpCode _ cEx (I32Mul) = do
let (value2, newStack1) = stackPop (ceStack cEx)
let (value1, newStack2) = stackPop newStack1
case (value1, value2) of
(I_32 val1, I_32 val2) -> cEx { ceStack = stackPush newStack2 (I_32 (val1 * val2)) }
_ -> throw $ WasmError "exec I32Mul: bad type"
execOpCode _ cEx (I32Divs) = do
let (value2, newStack1) = stackPop (ceStack cEx)
let (value1, newStack2) = stackPop newStack1
case (value1, value2) of
(I_32 _, I_32 0) -> throw $ WasmError "exec I32Divs: division by zero"
(I_32 val1, I_32 val2) -> cEx { ceStack = stackPush newStack2 (I_32 (val1 `div` val2)) }
_ -> throw $ WasmError "exec I32Divs: bad type"
execOpCode _ cEx (BrIf labelIdx) = do
let (value, newStack) = stackPop (ceStack cEx)
case value of
Expand Down

0 comments on commit bb5fc93

Please sign in to comment.