INLINE_STATIC void switch_to_line (int line) { int sz = CURRENT_PROGRAM_SIZE - last_size_generated; ADDRESS_TYPE s; unsigned char *p; if (sz) { s = line_being_generated; last_size_generated += sz; while (sz > 255) { p = (unsigned char *)allocate_in_mem_block(A_LINENUMBERS, sizeof(ADDRESS_TYPE) + 1); *p++ = 255; #if !defined(USE_32BIT_ADDRESSES) STORE_SHORT(p, s); #else STORE_INT(p, s); #endif sz -= 255; } p = (unsigned char *)allocate_in_mem_block(A_LINENUMBERS, sizeof(ADDRESS_TYPE) + 1); *p++ = sz; #if !defined(USE_32BIT_ADDRESSES) STORE_SHORT(p, s); #else STORE_INT(p, s); #endif } line_being_generated = line; }
INLINE void switch_to_line P1(int, line) { int sz = CURRENT_PROGRAM_SIZE - last_size_generated; short s; unsigned char *p; /* should be fixed later */ if (current_block != A_PROGRAM) return; if (sz) { s = line_being_generated; last_size_generated += sz; while (sz > 255) { p = (unsigned char *)allocate_in_mem_block(A_LINENUMBERS, 3); *p++ = 255; STORE_SHORT(p, s); sz -= 255; } p = (unsigned char *)allocate_in_mem_block(A_LINENUMBERS, 3); *p++ = sz; STORE_SHORT(p, s); } line_being_generated = line; }