# HG changeset patch # User Michael Pavone # Date 1472791968 25200 # Node ID c44170825b163ebb92503cb37652742531880bf6 # Parent fa9cf7108ab7f9256475e8141a840cbfac3eba43 Implement lsli and lsri in assembler diff -r fa9cf7108ab7 -r c44170825b16 simple_console.txt --- a/simple_console.txt Wed Aug 31 23:50:20 2016 -0700 +++ b/simple_console.txt Thu Sep 01 21:52:48 2016 -0700 @@ -53,7 +53,7 @@ B: ori C: xori D: ls[lr]i - MSB of AAAA determines direction + MSB of AAAA determines direction (0 = lsli, 1 = lsri) LS 3 bits determines magnitude E: cmpi F: single reg diff -r fa9cf7108ab7 -r c44170825b16 src/asm.c --- a/src/asm.c Wed Aug 31 23:50:20 2016 -0700 +++ b/src/asm.c Thu Sep 01 21:52:48 2016 -0700 @@ -122,6 +122,18 @@ } return ret; } + if (!strcmp("lsli", mnemonic) || !strcmp("lsri", mnemonic)) { + ret.base = LSI << 4 | SINGLE_SOURCE; + if (mnemonic[2] == 'r') { + ret.base |= 0x800; + } + ret.immed_min = 1; + ret.immed_max = 8; + ret.first_shift = 8; + ret.second_shift = 12; + ret.expected_args = 2; + return ret; + } index = find_string_arr(mnemonics_single_reg, mnemonic, SETVBR+1); if (index > SETVBR) { ret.base = 0xFFFF;