X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=cpu%2Fsrc%2Fdecoder_b.vhd;fp=cpu%2Fsrc%2Fdecoder_b.vhd;h=ed9ed4a290cf3178670836d0800b19fcd058154f;hb=842f3309b6853e1a9b1578978b14da9bc344c5e0;hp=525d408170a0b6b5bca6b12cfe42ec07f85df0e1;hpb=1fe4233678281d6c96188b13f46982aee25fea02;p=calu.git diff --git a/cpu/src/decoder_b.vhd b/cpu/src/decoder_b.vhd index 525d408..ed9ed4a 100644 --- a/cpu/src/decoder_b.vhd +++ b/cpu/src/decoder_b.vhd @@ -312,16 +312,21 @@ begin instr_s.reg_dest_addr := instruction(22 downto 19); instr_s.op_group := STACK_OP; instr_s.op_detail(NO_PSW_OPT) := '1'; + instr_s.op_detail(PWREN_OPT) := '1'; case instruction(18 downto 17) is - when "00" => + when "00" => --pop instr_s.op_detail(PUSH_OPT) := '0'; - when "01" => null; + when "01" => --disc + instr_s.op_detail(PUSH_OPT) := '0'; + instr_s.op_detail(NO_DST_OPT) := '1'; - when "10" => null; + when "10" => --fetch + instr_s.op_detail(PUSH_OPT) := '0'; + instr_s.op_detail(PWREN_OPT) := '0'; - when "11" => + when "11" => --push instr_s.op_detail(PUSH_OPT) := '1'; when others => null;