Add new instructions.

This commit is contained in:
Erik Stenman 2019-02-19 12:15:01 +01:00
parent 3ddae5e674
commit ce33ba8818
5 changed files with 13 additions and 3 deletions

View File

@ -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).

View File

@ -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} :

View File

@ -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'.

View File

@ -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;