ack/util/ceg/ce_back/obj_back/label.c

31 lines
629 B
C
Raw Normal View History

1987-11-20 10:41:03 +00:00
#include <out.h>
#include "header.h"
#include "back.h"
1988-11-18 17:52:39 +00:00
int _Label, _Label_waiting;
1987-11-20 10:41:03 +00:00
save_label( lab)
char *lab;
1987-11-25 13:54:01 +00:00
/* It is now not possible to tell where the label belongs to, so store
* the string and remember the returned index to store the missing
* information later on (see dump_label()). Two labels at one address
* is not allowed.
*/
1987-11-20 10:41:03 +00:00
{
1988-11-18 17:52:39 +00:00
_Label = find_sym( lab, SYMBOL_DEFINITION);
_Label_waiting = 1;
1987-11-20 10:41:03 +00:00
}
dump_label()
{
1988-11-18 17:52:39 +00:00
if ( _Label_waiting) {
1987-11-20 10:41:03 +00:00
align_word();
1988-11-18 17:52:39 +00:00
symbol_table[ _Label].on_valu = cur_value();
symbol_table[ _Label].on_type |= ( S_MIN + conv_seg( cur_seg));
_Label_waiting = 0;
1987-11-20 10:41:03 +00:00
}
}