-/* ============================================================ */
-/* Global macros */
-
-/* Shift out the low bits of a pattern to give the high bits pattern.
- The stripped patterns are used for initial tests of partial
- matches. */
-#define HIGH_BITS(word_pattern) (word_pattern >> NUM_LOW_BITS)
-
-/* String the high bits of a pattern so the low order bits can
- be included in an encoding of a partial match. */
-#define LOW_BITS(word_pattern) (word_pattern & LOW_BITS_MASK)
-
-#if defined DEBUG_WK
-#define DEBUG_PRINT_1(string) printf (string)
-#define DEBUG_PRINT_2(string,value) printf(string, value)
-#else
-#define DEBUG_PRINT_1(string)
-#define DEBUG_PRINT_2(string, value)
-#endif
-
-/* Set up the dictionary before performing compression or
- decompression. Each element is loaded with some value, the
- high-bits version of that value, and a next pointer. */
-#define PRELOAD_DICTIONARY { \
- dictionary[0] = 1; \
- dictionary[1] = 1; \
- dictionary[2] = 1; \
- dictionary[3] = 1; \
- dictionary[4] = 1; \
- dictionary[5] = 1; \
- dictionary[6] = 1; \
- dictionary[7] = 1; \
- dictionary[8] = 1; \
- dictionary[9] = 1; \
- dictionary[10] = 1; \
- dictionary[11] = 1; \
- dictionary[12] = 1; \
- dictionary[13] = 1; \
- dictionary[14] = 1; \
- dictionary[15] = 1; \
-}
-
-/* these are the constants for the hash function lookup table.
- * Only zero maps to zero. The rest of the tabale is the result
- * of appending 17 randomizations of the multiples of 4 from
- * 4 to 56. Generated by a Scheme script in hash.scm.
- */
-#define HASH_LOOKUP_TABLE_CONTENTS { \
- 0, 52, 8, 56, 16, 12, 28, 20, 4, 36, 48, 24, 44, 40, 32, 60, \
- 8, 12, 28, 20, 4, 60, 16, 36, 24, 48, 44, 32, 52, 56, 40, 12, \
- 8, 48, 16, 52, 60, 28, 56, 32, 20, 24, 36, 40, 44, 4, 8, 40, \
- 60, 32, 20, 44, 4, 36, 52, 24, 16, 56, 48, 12, 28, 16, 8, 40, \
- 36, 28, 32, 12, 4, 44, 52, 20, 24, 48, 60, 56, 40, 48, 8, 32, \
- 28, 36, 4, 44, 20, 56, 60, 24, 52, 16, 12, 12, 4, 48, 20, 8, \
- 52, 16, 60, 24, 36, 44, 28, 56, 40, 32, 36, 20, 24, 60, 40, 44, \
- 52, 16, 32, 4, 48, 8, 28, 56, 12, 28, 32, 40, 52, 36, 16, 20, \
- 48, 8, 4, 60, 24, 56, 44, 12, 8, 36, 24, 28, 16, 60, 20, 56, \
- 32, 40, 48, 12, 4, 44, 52, 44, 40, 12, 56, 8, 36, 24, 60, 28, \
- 48, 4, 32, 20, 16, 52, 60, 12, 24, 36, 8, 4, 16, 56, 48, 44, \
- 40, 52, 32, 20, 28, 32, 12, 36, 28, 24, 56, 40, 16, 52, 44, 4, \
- 20, 60, 8, 48, 48, 52, 12, 20, 32, 44, 36, 28, 4, 40, 24, 8, \
- 56, 60, 16, 36, 32, 8, 40, 4, 52, 24, 44, 20, 12, 28, 48, 56, \
- 16, 60, 4, 52, 60, 48, 20, 16, 56, 44, 24, 8, 40, 12, 32, 28, \
- 36, 24, 32, 12, 4, 20, 16, 60, 36, 28, 8, 52, 40, 48, 44, 56 \
-}
-
-#define HASH_TO_DICT_BYTE_OFFSET(pattern) \
- (hashLookupTable[((pattern) >> 10) & 0xFF])
-
-extern const char hashLookupTable[];
-
-/* EMIT... macros emit bytes or words into the intermediate arrays
- */
-
-#define EMIT_BYTE(fill_ptr, byte_value) {*fill_ptr++ = byte_value; }
-#define EMIT_WORD(fill_ptr,word_value) {*fill_ptr++ = word_value; }
-
-/* RECORD... macros record the results of modeling in the intermediate
- * arrays
- */
-
-#define RECORD_ZERO { EMIT_BYTE(next_tag,ZERO_TAG); }
-
-#define RECORD_EXACT(queue_posn) EMIT_BYTE(next_tag,EXACT_TAG); \
- EMIT_BYTE(next_qp,(queue_posn));
-
-#define RECORD_PARTIAL(queue_posn,low_bits_pattern) { \
- EMIT_BYTE(next_tag,PARTIAL_TAG); \
- EMIT_BYTE(next_qp,(queue_posn)); \
- EMIT_WORD(next_low_bits,(low_bits_pattern)) }
-
-#define RECORD_MISS(word_pattern) EMIT_BYTE(next_tag,MISS_TAG); \
- EMIT_WORD(next_full_patt,(word_pattern));
-