|
|
1.1 root 1: //
2: // nono
1.1.1.2 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
7: #pragma once
8:
1.1.1.4 ! root 9: class m68030acc : public m68030ccr
1.1 root 10: {
11: public:
1.1.1.4 ! root 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);
1.1 root 91:
92: private:
1.1.1.4 ! root 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);
1.1 root 99: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.