mach1.c 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /* $Id$ */
  2. /*
  3. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  4. * See the copyright notice in the ACK home directory, in the file "Copyright".
  5. */
  6. /* @(#)mach1.c 1.8 */
  7. /*
  8. * Motorola 68000/68010 dependent C declarations
  9. */
  10. #define low3(z) ((short)(z) & 07)
  11. #define low4(z) ((short)(z) & 017)
  12. #define low7(z) ((short)(z) & 0177)
  13. #define fit3(z) ((((z)-1) & ~((int)07)) == 0)
  14. #define fit4(z) (((z) & ~((int)017)) == 0)
  15. #define fit7(z) (((z) & ~((int)0177)) == 0)
  16. #define sfit7(z) (fit7((z)+64))
  17. #define fit8(z) (((z) & ~((int)0xFF)) == 0)
  18. #define fit16(z) (((z) & ~(0xFFFFL)) == 0)
  19. #define SIZE_B 0000
  20. #define SIZE_W 0100
  21. #define SIZE_L 0200
  22. #define SIZE_NON 0300
  23. #define SIZE_DEF SIZE_W
  24. #define FSIZE_L 00
  25. #define FSIZE_S 01
  26. #define FSIZE_X 02
  27. #define FSIZE_P 03
  28. #define FSIZE_W 04
  29. #define FSIZE_D 05
  30. #define FSIZE_B 06
  31. #define DEF_FP 01000 /* default floating point processor */
  32. extern int co_id;
  33. extern int mrg_1,mrg_2;
  34. extern expr_t exp_1,exp_2;
  35. #ifndef ASLD
  36. extern valu_t rel_1,rel_2;
  37. #endif
  38. extern int model; /* 68000/68010 */
  39. extern int curr_instr;
  40. /* addressing mode bits */
  41. #define DTA 0x01
  42. #define MEM 0x02
  43. #define CTR 0x04
  44. #define ALT 0x08
  45. #define FITB 0x10
  46. #define FITW 0x20
  47. #define PUTW 0x40
  48. #define PUTL 0x80
  49. #ifndef extern
  50. extern short eamode[];
  51. #else
  52. short eamode[] = {
  53. /* 00A */ DTA |ALT,
  54. /* 01A */ ALT,
  55. /* 02A */ DTA|MEM|CTR|ALT,
  56. /* 03A */ DTA|MEM |ALT,
  57. /* 04A */ DTA|MEM |ALT,
  58. /* 05A */ DTA|MEM|CTR|ALT|FITW|PUTW | (RELO2 )<<8,
  59. /* 06A */ DTA|MEM|CTR|ALT |PUTW | (RELO1 )<<8,
  60. /* 07x */ 0,
  61. /* 070 */ DTA|MEM|CTR|ALT|FITW|PUTW | (RELO2 )<<8,
  62. /* 071 */ DTA|MEM|CTR|ALT |PUTL | (RELO4 )<<8,
  63. /* 072 */ DTA|MEM|CTR |FITW|PUTW | (RELO2|RELPC)<<8,
  64. /* 073 */ DTA|MEM|CTR |PUTW | (RELO1|RELPC)<<8,
  65. /* 074x */ 0,
  66. /* 074B */ DTA|MEM |FITB|PUTW | (RELO1 )<<8,
  67. /* 074W */ DTA|MEM |FITW|PUTW | (RELO2 )<<8,
  68. /* 074L */ DTA|MEM |PUTL | (RELO4 )<<8,
  69. };
  70. #endif