|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2022 nono project
4: // Licensed under nono-license.txt
5: //
6:
7: //
8: // HD64180 演算部分
9: //
10:
11: #pragma once
12:
13: #include "hd64180.h"
14:
15: class hd64180acc : public hd64180flag
16: {
17: public:
18: uint32 ld_ir8(uint32 src);
19:
20: uint32 add_8(uint32 dst, uint32 src, bool save_c = false);
21: uint32 sub_8(uint32 dst, uint32 src, bool save_c = false);
22: uint32 inc_8(uint32 src) { return add_8(src, 1, true); }
23: uint32 dec_8(uint32 src) { return sub_8(src, 1, true); }
24: uint32 adc_8(uint32 dst, uint32 src);
25: uint32 sbc_8(uint32 dst, uint32 src);
26:
27: uint32 add_16(uint32 dst, uint32 src);
28: uint32 adc_16(uint32 dst, uint32 src);
29: uint32 sbc_16(uint32 dst, uint32 src);
30:
31: void bit_8(uint b, uint32 src);
32: uint32 in_8(uint32 src);
33: uint32 outm_8(uint32 src, uint32 creg);
34:
35: uint32 and_8(uint32 dst, uint32 src);
36: uint32 or_8(uint32 dst, uint32 src);
37: uint32 xor_8(uint32 dst, uint32 src);
38: void tst_8(uint32 dst, uint32 src);
39:
40: uint32 sla_8(uint32 src);
41: uint32 sra_8(uint32 src);
42: uint32 srl_8(uint32 src);
43: uint32 rl_8(uint32 src);
44: uint32 rlc_8(uint32 src);
45: uint32 rr_8(uint32 src);
46: uint32 rrc_8(uint32 src);
47:
48: private:
49: static inline uint32 vflag_add(uint32 dst, uint32 src, uint32 res);
50: static inline uint32 vflag_sub(uint32 dst, uint32 src, uint32 res);
51: static inline uint32 hflag_add(uint32 dst, uint32 src);
52: static inline uint32 hflag_sub(uint32 dst, uint32 src);
53: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.