|
|
1.1 root 1: /*
2: * UAE - The Un*x Amiga Emulator
3: *
4: * MC68000 emulation - machine dependent bits
5: *
6: * Copyright 1996 Bernd Schmidt
7: */
8:
9:
10: struct flag_struct {
11: unsigned int c;
12: unsigned int z;
13: unsigned int n;
14: unsigned int v;
15: unsigned int x;
16: };
17:
18: extern struct flag_struct regflags;
19:
20: #define ZFLG (regflags.z)
21: #define NFLG (regflags.n)
22: #define CFLG (regflags.c)
23: #define VFLG (regflags.v)
24: #define XFLG (regflags.x)
25:
26: static __inline__ int cctrue(const int cc)
27: {
28: switch(cc){
29: case 0: return 1; /* T */
30: case 1: return 0; /* F */
31: case 2: return !CFLG && !ZFLG; /* HI */
32: case 3: return CFLG || ZFLG; /* LS */
33: case 4: return !CFLG; /* CC */
34: case 5: return CFLG; /* CS */
35: case 6: return !ZFLG; /* NE */
36: case 7: return ZFLG; /* EQ */
37: case 8: return !VFLG; /* VC */
38: case 9: return VFLG; /* VS */
39: case 10:return !NFLG; /* PL */
40: case 11:return NFLG; /* MI */
41: case 12:return NFLG == VFLG; /* GE */
42: case 13:return NFLG != VFLG; /* LT */
43: case 14:return !ZFLG && (NFLG == VFLG); /* GT */
44: case 15:return ZFLG || (NFLG != VFLG); /* LE */
45: }
46: abort();
47: return 0;
48: }
49:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.