|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2020 nono project ! 4: // Licensed under nono-license.txt ! 5: // ! 6: ! 7: #pragma once ! 8: ! 9: class m680x0ACC : public m680x0CCR ! 10: { ! 11: public: ! 12: // res を元に NZVC フラグをセットする。 ! 13: // res の上位ビットは無視される。 ! 14: inline void move_8(uint32 res) { ! 15: Z = res << 24; ! 16: N = Z; ! 17: C = 0; ! 18: V = 0; ! 19: } ! 20: ! 21: // res を元に NZVC フラグをセットする。 ! 22: // res の上位ビットは無視される。 ! 23: inline void move_16(uint32 res) { ! 24: Z = res << 16; ! 25: N = Z; ! 26: C = 0; ! 27: V = 0; ! 28: } ! 29: ! 30: // res を元に NZVC フラグをセットする。 ! 31: inline void move_32(uint32 res) { ! 32: Z = res; ! 33: N = res; ! 34: C = 0; ! 35: V = 0; ! 36: } ! 37: ! 38: uint32 add_8(uint32, uint32); ! 39: uint32 add_16(uint32, uint32); ! 40: uint32 add_32(uint32, uint32); ! 41: uint32 addx_8(uint32, uint32); ! 42: uint32 addx_16(uint32, uint32); ! 43: uint32 addx_32(uint32, uint32); ! 44: uint32 cmp_8(uint32, uint32); ! 45: uint32 cmp_16(uint32, uint32); ! 46: uint32 cmp_32(uint32, uint32); ! 47: uint32 sub_8(uint32, uint32); ! 48: uint32 sub_16(uint32, uint32); ! 49: uint32 sub_32(uint32, uint32); ! 50: uint32 subx_8(uint32, uint32); ! 51: uint32 subx_16(uint32, uint32); ! 52: uint32 subx_32(uint32, uint32); ! 53: uint32 mulu_16(uint32, uint32); ! 54: uint32 muls_16(uint32, uint32); ! 55: uint32 mulu_32(uint32, uint32); ! 56: uint32 muls_32(uint32, uint32); ! 57: uint64 mulu_64(uint32, uint32); ! 58: uint64 muls_64(uint32, uint32); ! 59: void btst(uint32, int); ! 60: uint32 bchg(uint32, int); ! 61: uint32 bclr(uint32, int); ! 62: uint32 bset(uint32, int); ! 63: uint32 asl_8(uint32, int); ! 64: uint32 asl_16(uint32, int); ! 65: uint32 asl_32(uint32, int); ! 66: uint32 lsl_8(uint32, int); ! 67: uint32 lsl_16(uint32, int); ! 68: uint32 lsl_32(uint32, int); ! 69: uint32 roxl_8(uint32, int); ! 70: uint32 roxl_16(uint32, int); ! 71: uint32 roxl_32(uint32, int); ! 72: uint32 rol_8(uint32, int); ! 73: uint32 rol_16(uint32, int); ! 74: uint32 rol_32(uint32, int); ! 75: uint32 asr_8(uint32, int); ! 76: uint32 asr_16(uint32, int); ! 77: uint32 asr_32(uint32, int); ! 78: uint32 lsr_8(uint32, int); ! 79: uint32 lsr_16(uint32, int); ! 80: uint32 lsr_32(uint32, int); ! 81: uint32 roxr_8(uint32, int); ! 82: uint32 roxr_16(uint32, int); ! 83: uint32 roxr_32(uint32, int); ! 84: uint32 ror_8(uint32, int); ! 85: uint32 ror_16(uint32, int); ! 86: uint32 ror_32(uint32, int); ! 87: ! 88: void chk2cmp2_32(uint32, uint32, uint32); ! 89: uint32 abcd_8(uint32 src ,uint32 dst); ! 90: uint32 sbcd_8(uint32 src, uint32 dst); ! 91: ! 92: private: ! 93: static inline uint32 vflag_add_8(uint32 src, uint32 dst, uint32 res); ! 94: static inline uint32 vflag_add_16(uint32 src, uint32 dst, uint32 res); ! 95: static inline uint32 vflag_add_32(uint32 src, uint32 dst, uint32 res); ! 96: static inline uint32 vflag_sub_8(uint32 src, uint32 dst, uint32 res); ! 97: static inline uint32 vflag_sub_16(uint32 src, uint32 dst, uint32 res); ! 98: static inline uint32 vflag_sub_32(uint32 src, uint32 dst, uint32 res); ! 99: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.