Add new instructions.
This commit is contained in:
parent
3ddae5e674
commit
ce33ba8818
@ -111,6 +111,7 @@
|
|||||||
-define('BITS_ALLA' , 16#70).
|
-define('BITS_ALLA' , 16#70).
|
||||||
-define('INCA' , 16#71).
|
-define('INCA' , 16#71).
|
||||||
-define('DECA' , 16#72).
|
-define('DECA' , 16#72).
|
||||||
|
-define('POPA' , 16#73).
|
||||||
|
|
||||||
-define('FUNCTION' , 16#fe).
|
-define('FUNCTION' , 16#fe).
|
||||||
-define('EXTEND' , 16#ff).
|
-define('EXTEND' , 16#ff).
|
||||||
|
@ -31,7 +31,6 @@ false : {token, {boolean, TokenLine, false}}.
|
|||||||
RETURN : {token, {mnemonic, TokenLine, 'RETURN'}}.
|
RETURN : {token, {mnemonic, TokenLine, 'RETURN'}}.
|
||||||
RETURNR : {token, {mnemonic, TokenLine, 'RETURNR'}}.
|
RETURNR : {token, {mnemonic, TokenLine, 'RETURNR'}}.
|
||||||
CALL : {token, {mnemonic, TokenLine, 'CALL'}}.
|
CALL : {token, {mnemonic, TokenLine, 'CALL'}}.
|
||||||
FUNCTION : {token, {function, TokenLine, 'FUNCTION' }}.
|
|
||||||
NOP : {token, {mnemonic, TokenLine, 'NOP'}}.
|
NOP : {token, {mnemonic, TokenLine, 'NOP'}}.
|
||||||
|
|
||||||
CALL_R : {token, {mnemonic, TokenLine, 'CALL_R'}}.
|
CALL_R : {token, {mnemonic, TokenLine, 'CALL_R'}}.
|
||||||
@ -46,6 +45,7 @@ SWITCH_V5 : {token, {mnemonic, TokenLine, 'SWITCH_V5'}}.
|
|||||||
|
|
||||||
PUSH : {token, {mnemonic, TokenLine, 'PUSH'}}.
|
PUSH : {token, {mnemonic, TokenLine, 'PUSH'}}.
|
||||||
DUP : {token, {mnemonic, TokenLine, 'DUP'}}.
|
DUP : {token, {mnemonic, TokenLine, 'DUP'}}.
|
||||||
|
DUPA : {token, {mnemonic, TokenLine, 'DUPA'}}.
|
||||||
POP : {token, {mnemonic, TokenLine, 'POP'}}.
|
POP : {token, {mnemonic, TokenLine, 'POP'}}.
|
||||||
|
|
||||||
STORE : {token, {mnemonic, TokenLine, 'STORE'}}.
|
STORE : {token, {mnemonic, TokenLine, 'STORE'}}.
|
||||||
@ -138,6 +138,9 @@ ABORT : {token, {mnemonic, TokenLine, 'ABORT'}}.
|
|||||||
EXIT : {token, {mnemonic, TokenLine, 'EXIT'}}.
|
EXIT : {token, {mnemonic, TokenLine, 'EXIT'}}.
|
||||||
DEACTIVATE : {token, {mnemonic, TokenLine, 'DEACTIVATE'}}.
|
DEACTIVATE : {token, {mnemonic, TokenLine, 'DEACTIVATE'}}.
|
||||||
COMMENT : {token, {mnemonic, TokenLine, 'COMMENT'}}.
|
COMMENT : {token, {mnemonic, TokenLine, 'COMMENT'}}.
|
||||||
|
|
||||||
|
FUNCTION : {token, {function, TokenLine, 'FUNCTION' }}.
|
||||||
|
|
||||||
{ID} :
|
{ID} :
|
||||||
{token, {id, TokenLine, TokenChars}}.
|
{token, {id, TokenLine, TokenChars}}.
|
||||||
{HEX} :
|
{HEX} :
|
||||||
|
@ -219,7 +219,10 @@ bits_diff(To, Bits, Bit) ->
|
|||||||
{'BITS_DIFF', To, Bits, Bit}.
|
{'BITS_DIFF', To, Bits, Bit}.
|
||||||
|
|
||||||
dup() ->
|
dup() ->
|
||||||
'DUP'.
|
'DUPA'.
|
||||||
|
|
||||||
|
dup(N) when is_integer(N) ->
|
||||||
|
{'DUP', ?i(N)}.
|
||||||
|
|
||||||
pop() ->
|
pop() ->
|
||||||
'POP'.
|
'POP'.
|
||||||
|
@ -34,6 +34,7 @@ mnemonic(?JUMP) -> 'JUMP' ;
|
|||||||
mnemonic(?JUMPIF) -> 'JUMPIF' ;
|
mnemonic(?JUMPIF) -> 'JUMPIF' ;
|
||||||
mnemonic(?PUSH) -> 'PUSH' ;
|
mnemonic(?PUSH) -> 'PUSH' ;
|
||||||
mnemonic(?DUP) -> 'DUP' ;
|
mnemonic(?DUP) -> 'DUP' ;
|
||||||
|
mnemonic(?DUPA) -> 'DUPA' ;
|
||||||
mnemonic(?POP) -> 'POP' ;
|
mnemonic(?POP) -> 'POP' ;
|
||||||
mnemonic(?STORE) -> 'STORE' ;
|
mnemonic(?STORE) -> 'STORE' ;
|
||||||
mnemonic(?ADD) -> 'ADD' ;
|
mnemonic(?ADD) -> 'ADD' ;
|
||||||
@ -148,6 +149,7 @@ m_to_op('JUMP') -> ?JUMP ;
|
|||||||
m_to_op('JUMPIF') -> ?JUMPIF ;
|
m_to_op('JUMPIF') -> ?JUMPIF ;
|
||||||
m_to_op('PUSH') -> ?PUSH ;
|
m_to_op('PUSH') -> ?PUSH ;
|
||||||
m_to_op('DUP') -> ?DUP ;
|
m_to_op('DUP') -> ?DUP ;
|
||||||
|
m_to_op('DUPA') -> ?DUPA ;
|
||||||
m_to_op('POP') -> ?POP ;
|
m_to_op('POP') -> ?POP ;
|
||||||
m_to_op('STORE') -> ?STORE ;
|
m_to_op('STORE') -> ?STORE ;
|
||||||
m_to_op('ADD') -> ?ADD ;
|
m_to_op('ADD') -> ?ADD ;
|
||||||
@ -256,6 +258,7 @@ args(?NOP) -> 0;
|
|||||||
args(?RETURN) -> 0;
|
args(?RETURN) -> 0;
|
||||||
args(?INCA) -> 0;
|
args(?INCA) -> 0;
|
||||||
args(?DECA) -> 0;
|
args(?DECA) -> 0;
|
||||||
|
args(?DUPA) -> 0;
|
||||||
args(?BITS_NONEA) -> 0;
|
args(?BITS_NONEA) -> 0;
|
||||||
args(?BITS_ALLA) -> 0;
|
args(?BITS_ALLA) -> 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user