Annotation of generator/hdr/cpu68k-inline.h, revision 1.1.1.2

1.1.1.2 ! root        1: /* the ordering of these includes is important - stdio can have inline
        !             2:    functions - so can mem68k.h - and registers.h must appear before them */
        !             3: 
        !             4: #include "generator.h"
1.1       root        5: #include "registers.h"
                      6: 
1.1.1.2 ! root        7: #include <stdio.h>
        !             8: 
        !             9: #include "cpu68k.h"
        !            10: #include "mem68k.h"
        !            11: #include "reg68k.h"
        !            12: 
1.1       root       13: #define DATAREG(a) (reg68k_regs[a])
                     14: #define ADDRREG(a) (reg68k_regs[8+(a)])
                     15: #define PC (reg68k_pc)
                     16: #define SR (reg68k_sr.sr_int)
                     17: #define SP (regs.sp)
                     18: #define STOP (regs.stop)
                     19: #define TFLAG (reg68k_sr.sr_struct.t)
                     20: #define SFLAG (reg68k_sr.sr_struct.s)
                     21: #define XFLAG (reg68k_sr.sr_struct.x)
                     22: #define NFLAG (reg68k_sr.sr_struct.n)
                     23: #define ZFLAG (reg68k_sr.sr_struct.z)
                     24: #define VFLAG (reg68k_sr.sr_struct.v)
                     25: #define CFLAG (reg68k_sr.sr_struct.c)
                     26: 
                     27: static __inline__ sint32 idxval_dst(t_ipc *ipc) {
                     28:   switch( ((ipc->dst>>27) & 1) | ((ipc->dst>>30) & 2) ) {
                     29:   case 0: /* data, word */
                     30:     return ((sint16)DATAREG((ipc->dst>>28)&7))+((((sint32)(ipc->dst<<8)))>>8);
                     31:   case 1: /* data, long */
                     32:     return ((sint32)DATAREG((ipc->dst>>28)&7))+((((sint32)(ipc->dst<<8)))>>8);
                     33:   case 2: /* addr, word */
                     34:     return ((sint16)ADDRREG((ipc->dst>>28)&7))+((((sint32)(ipc->dst<<8)))>>8);
                     35:   case 3: /* addr, long */
                     36:     return ((sint32)ADDRREG((ipc->dst>>28)&7))+((((sint32)(ipc->dst<<8)))>>8);
                     37:   }
                     38:   return 0;
                     39: }
                     40: 
                     41: static __inline__ sint32 idxval_src(t_ipc *ipc) {
                     42:   switch( ((ipc->src>>27) & 1) | ((ipc->src>>30) & 2) ) {
                     43:   case 0: /* data, word */
                     44:     return ((sint16)DATAREG((ipc->src>>28)&7))+((((sint32)(ipc->src<<8)))>>8);
                     45:   case 1: /* data, long */
                     46:     return ((sint32)DATAREG((ipc->src>>28)&7))+((((sint32)(ipc->src<<8)))>>8);
                     47:   case 2: /* addr, word */
                     48:     return ((sint16)ADDRREG((ipc->src>>28)&7))+((((sint32)(ipc->src<<8)))>>8);
                     49:   case 3: /* addr, long */
                     50:     return ((sint32)ADDRREG((ipc->src>>28)&7))+((((sint32)(ipc->src<<8)))>>8);
                     51:   }
                     52:   return 0;
                     53: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.