15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x17 | 0x1 | fr |
(sequence ((QI result) (BI newcbit) (QI isLreg) (HI 16bval)) (set newcbit (add-cflag (reg h-spr 10) fr cbit)) (set dcbit (add-cflag (sll QI (reg h-spr 10) 4) (sll QI fr 4) cbit)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (addc HI 16bval (reg h-spr 10) cbit)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set result (reg h-spr f-reg))) (set result (addc (reg h-spr 10) fr cbit))) (set zbit (eq result 0)) (set cbit newcbit) (set fr result))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x17 | 0x0 | fr |
(sequence ((QI result) (BI newcbit)) (set newcbit (add-cflag (reg h-spr 10) fr cbit)) (set dcbit (add-cflag (sll QI (reg h-spr 10) 4) (sll QI fr 4) cbit)) (set result (addc (reg h-spr 10) fr cbit)) (set zbit (eq result 0)) (set cbit newcbit) (set (reg h-spr 10) result))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x7 | 0x1 | fr |
(sequence ((QI result) (QI isLreg) (HI 16bval)) (set cbit (add-cflag (reg h-spr 10) fr 0)) (set dcbit (add-cflag (sll QI (reg h-spr 10) 4) (sll QI fr 4) 0)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (add HI (and (reg h-spr 10) 255) 16bval)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set result (reg h-spr f-reg))) (set result (addc (reg h-spr 10) fr 0))) (set zbit (eq result 0)) (set fr result))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x7 | 0x0 | fr |
(sequence ((QI result)) (set cbit (add-cflag (reg h-spr 10) fr 0)) (set dcbit (add-cflag (sll QI (reg h-spr 10) 4) (sll QI fr 4) 0)) (set result (addc (reg h-spr 10) fr 0)) (set zbit (eq result 0)) (set (reg h-spr 10) result))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0xb | lit8 |
(sequence () (set cbit (add-cflag (reg h-spr 10) lit8 0)) (set dcbit (add-cflag (sll QI (reg h-spr 10) 4) (sll QI lit8 4) 0)) (set (reg h-spr 10) (add (reg h-spr 10) lit8)) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x5 | 0x1 | fr |
(sequence () (set fr (and (reg h-spr 10) fr)) (set zbit (eq fr 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x5 | 0x0 | fr |
(sequence () (set (reg h-spr 10) (and fr (reg h-spr 10))) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0xe | lit8 |
(sequence () (set (reg h-spr 10) (and (reg h-spr 10) lit8)) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x1 |
(c-call "do_break" pc)
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x5 |
(c-call "do_break" pc)
15 14 13 | 12 11 10 9 8 7 6 5 4 3 2 1 0 |
f-op3 | f-addr16cjp |
0x6 | addr16cjp |
(sequence () (c-call "push_pc_stack" pc) (set pc (or (sll pabits 13) addr16cjp)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x1 | 0x1 | fr |
(sequence () (set fr 0) (set zbit (eq fr 0)))
15 14 13 12 | 11 10 9 | 8 7 6 5 4 3 2 1 0 |
f-op4 | f-bitno | f-reg |
0x8 | bitno | fr |
(set fr (and fr (inv (sll 1 bitno))))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x1 | 0x0 | fr |
(sequence () (set cbit (not (sub-cflag fr (reg h-spr 10) 0))) (set dcbit (not (sub-cflag (sll QI fr 4) (sll QI (reg h-spr 10) 4) 0))) (set zbit (eq (sub (reg h-spr 10) fr) 0)))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x9 | lit8 |
(sequence () (set cbit (not (sub-cflag lit8 (reg h-spr 10) 0))) (set dcbit (not (sub-cflag (sll QI lit8 4) (sll QI (reg h-spr 10) 4) 0))) (set zbit (eq (sub (reg h-spr 10) lit8) 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x10 | 0x1 | fr |
(if (eq (reg h-spr 10) fr) (skip 1))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x7 | lit8 |
(if (eq (reg h-spr 10) lit8) (skip 1))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x10 | 0x0 | fr |
(if (not (eq (reg h-spr 10) fr)) (skip 1))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x6 | lit8 |
(if (not (eq (reg h-spr 10) lit8)) (skip 1))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x4 |
(c-call "do_clear_wdt")
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x3 | 0x1 | fr |
(sequence ((QI isLreg) (HI 16bval)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (sub HI 16bval 1)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set fr (reg h-spr f-reg))) (set fr (sub fr 1))) (set zbit (eq fr 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x13 | 0x1 | fr |
(sequence ((QI isLreg) (HI 16bval)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (sub HI 16bval 1)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set fr (reg h-spr f-reg))) (set fr (sub fr 1))) (if (not (eq fr 0)) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x13 | 0x0 | fr |
(sequence () (set (reg h-spr 10) (sub fr 1)) (if (not (eq (reg h-spr 10) 0)) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xb | 0x1 | fr |
(sequence ((QI isLreg) (HI 16bval)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (sub HI 16bval 1)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set fr (reg h-spr f-reg))) (set fr (sub fr 1))) (if (eq fr 0) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xb | 0x0 | fr |
(sequence () (set (reg h-spr 10) (sub fr 1)) (if (eq (reg h-spr 10) 0) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x3 | 0x0 | fr |
(sequence () (set (reg h-spr 10) (sub fr 1)) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x3 |
(c-call "do_flash_erase")
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x1b |
(c-call "do_flash_read")
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x1a |
(c-call "do_flash_write")
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xa | 0x1 | fr |
(sequence ((QI isLreg) (HI 16bval)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (add HI 16bval 1)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set fr (reg h-spr f-reg))) (set fr (add fr 1))) (set zbit (eq fr 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x16 | 0x1 | fr |
(sequence ((QI isLreg) (HI 16bval)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (add HI 16bval 1)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set fr (reg h-spr f-reg))) (set fr (add fr 1))) (if (not (eq fr 0)) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x16 | 0x0 | fr |
(sequence () (set (reg h-spr 10) (add fr 1)) (if (not (eq (reg h-spr 10) 0)) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xf | 0x1 | fr |
(sequence ((QI isLreg) (HI 16bval)) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (add HI 16bval 1)) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set fr (reg h-spr f-reg))) (set fr (add fr 1))) (if (eq fr 0) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xf | 0x0 | fr |
(sequence () (set (reg h-spr 10) (add fr 1)) (if (eq (reg h-spr 10) 0) (skip 1)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xa | 0x0 | fr |
(sequence () (set (reg h-spr 10) (add fr 1)) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x6 |
(nop)
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x19 |
(c-call "do_insn_read")
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x1d |
(c-call "do_insn_read")
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x18 |
(c-call "do_insn_write")
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x1c |
(c-call "do_insn_write")
15 14 13 | 12 11 10 9 8 7 6 5 4 3 2 1 0 |
f-op3 | f-addr16cjp |
0x7 | addr16cjp |
(set pc (or (sll pabits 13) addr16cjp))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x0 | addr16h |
(set (reg h-spr 12) (and addr16l 65280))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x0 | lit8 |
(set (reg h-spr 12) (and lit8 255))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x1 | addr16l |
(set (reg h-spr 13) (and addr16l 255))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x1 | lit8 |
(set (reg h-spr 13) (and lit8 255))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x0 | 0x1 | fr |
(set fr (reg h-spr 10))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x8 | 0x0 | fr |
(sequence () (set (reg h-spr 10) fr) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0xc | lit8 |
(set (reg h-spr 10) lit8)
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x15 | 0x0 | fr |
(sequence ((SI tmp)) (set tmp (mul (ext SI (reg h-spr 10)) (ext SI fr))) (set (reg h-spr 10) (and tmp 255)) (set (reg h-spr 15) (srl tmp 8)))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x3 | lit8 |
(sequence ((SI tmp)) (set tmp (mul (ext SI (reg h-spr 10)) (ext SI (and UQI 255 lit8)))) (set (reg h-spr 10) (and tmp 255)) (set (reg h-spr 15) (srl tmp 8)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x14 | 0x0 | fr |
(sequence ((USI tmp)) (set tmp (and 65535 (mul (zext USI (reg h-spr 10)) (zext USI fr)))) (set (reg h-spr 10) (and tmp 255)) (set (reg h-spr 15) (srl tmp 8)))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x2 | lit8 |
(sequence ((USI tmp)) (set tmp (and 65535 (mul (zext USI (reg h-spr 10)) (zext USI lit8)))) (set (reg h-spr 10) (and tmp 255)) (set (reg h-spr 15) (srl tmp 8)))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x0 |
(nop)
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x9 | 0x1 | fr |
(sequence () (set fr (inv fr)) (set zbit (eq fr 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x9 | 0x0 | fr |
(sequence () (set (reg h-spr 10) (inv fr)) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x4 | 0x1 | fr |
(sequence () (set fr (or (reg h-spr 10) fr)) (set zbit (eq fr 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x4 | 0x0 | fr |
(sequence () (set (reg h-spr 10) (or fr (reg h-spr 10))) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0xd | lit8 |
(sequence () (set (reg h-spr 10) (or (reg h-spr 10) lit8)) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 | 2 1 0 |
f-op6 | f-op6-7low | f-page3 |
0x0 | 0x2 | addr16p |
(set pabits addr16p)
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x11 | 0x1 | fr |
(sequence () (set fr (c-call QI "pop")) (c-call VOID "adjuststackptr" 1))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x11 | 0x0 | fr |
(sequence () (c-call "push" fr) (c-call VOID "adjuststackptr" -1))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x4 | lit8 |
(sequence () (c-call "push" lit8) (c-call VOID "adjuststackptr" -1))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x7 |
(sequence ((USI new_pc)) (set new_pc (c-call UHI "pop_pc_stack")) (set pabits (srl new_pc 13)) (set pc new_pc))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 | 2 1 0 |
f-op6 | f-op6-7low | f-reti3 |
0x0 | 0x1 | reti3 |
(c-call "do_reti" reti3)
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0x2 |
(sequence ((USI new_pc)) (set new_pc (c-call UHI "pop_pc_stack")) (set pc new_pc))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0x8 | lit8 |
(sequence ((USI new_pc)) (set (reg h-spr 10) lit8) (set new_pc (c-call UHI "pop_pc_stack")) (set pabits (srl new_pc 13)) (set pc new_pc))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xd | 0x1 | fr |
(sequence ((QI newfr) (BI newc)) (set newc (and fr 128)) (set newfr (or (sll fr 1) (if QI cbit 1 0))) (set cbit (if QI newc 1 0)) (set fr newfr))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xd | 0x0 | fr |
(sequence ((QI newfr) (BI newc)) (set newc (and fr 128)) (set newfr (or (sll fr 1) (if QI cbit 1 0))) (set cbit (if QI newc 1 0)) (set (reg h-spr 10) newfr))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xc | 0x1 | fr |
(sequence ((QI newfr) (BI newc)) (set newc (and fr 1)) (set newfr (or (srl fr 1) (if QI cbit 128 0))) (set cbit (if QI newc 1 0)) (set fr newfr))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xc | 0x0 | fr |
(sequence ((QI newfr) (BI newc)) (set newc (and fr 1)) (set newfr (or (srl fr 1) (if QI cbit 128 0))) (set cbit (if QI newc 1 0)) (set (reg h-spr 10) newfr))
15 14 13 12 | 11 10 9 | 8 7 6 5 4 3 2 1 0 |
f-op4 | f-bitno | f-reg |
0xb | bitno | fr |
(if (and fr (sll 1 bitno)) (skip 1))
15 14 13 12 | 11 10 9 | 8 7 6 5 4 3 2 1 0 |
f-op4 | f-bitno | f-reg |
0x9 | bitno | fr |
(set fr (or fr (sll 1 bitno)))
15 14 13 12 | 11 10 9 | 8 7 6 5 4 3 2 1 0 |
f-op4 | f-bitno | f-reg |
0xa | bitno | fr |
(if (not (and fr (sll 1 bitno))) (skip 1))
15 14 13 12 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op8 | f-imm8 |
0x1 | lit8 |
(set (reg h-registers 14) lit8)
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x12 | 0x1 | fr |
(sequence ((QI result) (BI newcbit) (QI isLreg) (HI 16bval)) (set newcbit (not (sub-cflag fr (reg h-spr 10) (not cbit)))) (set dcbit (not (sub-cflag (sll QI fr 4) (sll QI (reg h-spr 10) 4) (not cbit)))) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (subc HI 16bval (reg h-spr 10) (not cbit))) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set result (reg h-spr f-reg))) (set result (subc fr (reg h-spr 10) (not cbit)))) (set zbit (eq result 0)) (set cbit newcbit) (set fr result))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x12 | 0x0 | fr |
(sequence ((QI result) (BI newcbit)) (set newcbit (not (sub-cflag fr (reg h-spr 10) (not cbit)))) (set dcbit (not (sub-cflag (sll QI fr 4) (sll QI (reg h-spr 10) 4) (not cbit)))) (set result (subc fr (reg h-spr 10) (not cbit))) (set zbit (eq result 0)) (set cbit newcbit) (set (reg h-spr 10) result))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x2 | 0x1 | fr |
(sequence ((QI result) (QI isLreg) (HI 16bval)) (set cbit (not (sub-cflag fr (reg h-spr 10) 0))) (set dcbit (not (sub-cflag (sll QI fr 4) (sll QI (reg h-spr 10) 4) 0))) (sequence () (set isLreg 0) (if (or (or (eq f-reg 5) (eq f-reg 7)) (or (eq f-reg 9) (or (eq f-reg 13) (eq f-reg 17)))) (set isLreg 1))) (if (eq isLreg 1) (sequence () (set 16bval (reg h-spr (sub f-reg 1))) (set 16bval (sll 16bval 8)) (set 16bval (or 16bval (and (reg h-spr f-reg) 255))) (set 16bval (sub HI 16bval (and (reg h-spr 10) 255))) (set (reg h-spr f-reg) (and 16bval 255)) (set (reg h-spr (sub f-reg 1)) (and (srl 16bval 8) 255)) (set result (reg h-spr f-reg))) (set result (subc fr (reg h-spr 10) 0))) (set zbit (eq result 0)) (set fr result))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x2 | 0x0 | fr |
(sequence ((QI result)) (set cbit (not (sub-cflag fr (reg h-spr 10) 0))) (set dcbit (not (sub-cflag (sll QI fr 4) (sll QI (reg h-spr 10) 4) 0))) (set result (subc fr (reg h-spr 10) 0)) (set zbit (eq result 0)) (set (reg h-spr 10) result))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0xa | lit8 |
(sequence () (set cbit (not (sub-cflag lit8 (reg h-spr 10) 0))) (set dcbit (not (sub-cflag (sll QI lit8 4) (sll QI (reg h-spr 10) 4) 0))) (set zbit (eq (sub (reg h-spr 10) lit8) 0)) (set (reg h-spr 10) (sub lit8 (reg h-spr 10))))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xe | 0x1 | fr |
(set fr (or (and (sll fr 4) 240) (and (srl fr 4) 15)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0xe | 0x0 | fr |
(set (reg h-spr 10) (or (and (sll fr 4) 240) (and (srl fr 4) 15)))
15 14 13 12 11 10 | 9 8 7 6 5 4 3 2 1 0 |
f-op6 | f-op6-10low |
0x0 | 0xff |
(c-call "do_system")
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x8 | 0x1 | fr |
(sequence () (set zbit (eq fr 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x6 | 0x1 | fr |
(sequence () (set fr (xor (reg h-spr 10) fr)) (set zbit (eq fr 0)))
15 14 13 12 11 10 | 9 | 8 7 6 5 4 3 2 1 0 |
f-op6 | f-dir | f-reg |
0x6 | 0x0 | fr |
(sequence () (set (reg h-spr 10) (xor fr (reg h-spr 10))) (set zbit (eq (reg h-spr 10) 0)))
15 14 13 12 | 11 10 9 8 | 7 6 5 4 3 2 1 0 |
f-op4 | f-op4mid | f-imm8 |
0x7 | 0xf | lit8 |
(sequence () (set (reg h-spr 10) (xor (reg h-spr 10) lit8)) (set zbit (eq (reg h-spr 10) 0)))
((emit sb (bitno 0) (fr 11)))
((emit snb (bitno 0) (fr 9)))
((emit sb (bitno 0) (fr 9)))
((emit snb (bitno 0) (fr 11)))
((emit snb (bitno 2) (fr 11)))
((emit sb (bitno 2) (fr 11)))
This documentation was machine generated from the cgen cpu description
files for this architecture.
http://sources.redhat.com/cgen/