Home | History | Annotate | Download | only in aic7xxx

Lines Matching refs:symbol

91 static void initialize_symbol(symbol_t *symbol);
101 static void test_readable_symbol(symbol_t *symbol);
102 static void test_writable_symbol(symbol_t *symbol);
103 static void type_check(symbol_t *symbol, expression_t *expression, int and_op);
105 static void add_conditional(symbol_t *symbol);
425 symbol_t *symbol;
427 symbol = $1;
428 if (symbol->type != CONST) {
433 if (symbol->info.cinfo->value > 4) {
438 $$ = (0x1 << symbol->info.cinfo->value);
524 if (accumulator.symbol != NULL) {
529 accumulator.symbol = cur_symbol;
536 if (mode_ptr.symbol != NULL) {
541 mode_ptr.symbol = cur_symbol;
548 if (allones.symbol != NULL) {
553 allones.symbol = cur_symbol;
560 if (allzeros.symbol != NULL) {
565 allzeros.symbol = cur_symbol;
572 if (none.symbol != NULL) {
577 none.symbol = cur_symbol;
584 if (sindex.symbol != NULL) {
589 sindex.symbol = cur_symbol;
671 symbol_t *symbol;
673 symbol = $1;
674 switch (symbol->type) {
676 symbol = $1->info.ainfo->parent;
680 $$.value = symbol->info.rinfo->address;
686 $$.value = symbol->info.finfo->value;
690 $$.value = symbol->info.cinfo->value;
696 "Undefined symbol %s referenced",
697 symbol->name);
704 symlist_add(&$$.referenced_syms, symbol, SYMLIST_INSERT_HEAD);
712 stop("Re-definition of symbol as a constant",
728 stop("Re-definition of symbol as a downloaded constant",
742 stop("Re-definition of symbol as a macro",
859 $$.symbol = $1;
874 $$.symbol = $1;
885 $$.symbol = $1;
890 if (accumulator.symbol == NULL) {
894 $$.symbol = accumulator.symbol;
902 test_writable_symbol($1.symbol);
928 symlist_add(&$$.referenced_syms, accumulator.symbol,
937 test_readable_symbol($1.symbol);
944 $$.symbol = NULL;
1025 $$.symbol = $1;
1030 $$.symbol = $1;
1035 $$.symbol = $1;
1040 $$.symbol = NULL;
1045 $$.symbol = NULL;
1050 $$.symbol = NULL;
1385 * symbol list, if it already exists,
1414 /* Fail if this symbol is already listed */
1428 initialize_symbol(symbol_t *symbol)
1430 switch (symbol->type) {
1439 symbol->info.rinfo =
1441 if (symbol->info.rinfo == NULL) {
1445 memset(symbol->info.rinfo, 0,
1447 SLIST_INIT(&(symbol->info.rinfo->fields));
1454 symbol->info.rinfo->modes =
1457 symbol->info.rinfo->modes = ~0;
1460 symbol->info.ainfo =
1462 if (symbol->info.ainfo == NULL) {
1466 memset(symbol->info.ainfo, 0,
1473 symbol->info.finfo =
1475 if (symbol->info.finfo == NULL) {
1479 memset(symbol->info.finfo, 0, sizeof(struct field_info));
1480 SLIST_INIT(&(symbol->info.finfo->symrefs));
1484 symbol->info.cinfo =
1486 if (symbol->info.cinfo == NULL) {
1490 memset(symbol->info.cinfo, 0,
1494 symbol->info.linfo =
1496 if (symbol->info.linfo == NULL) {
1500 memset(symbol->info.linfo, 0,
1504 symbol->info.condinfo =
1506 if (symbol->info.condinfo == NULL) {
1510 memset(symbol->info.condinfo, 0,
1514 symbol->info.macroinfo =
1516 if (symbol->info.macroinfo == NULL) {
1520 memset(symbol->info.macroinfo, 0,
1522 STAILQ_INIT(&symbol->info.macroinfo->args);
1525 stop("Call to initialize_symbol with invalid symbol type",
1541 stop("Invalid current symbol for adding macro arg",
1572 stop("Invalid current symbol for adding macro arg",
1586 symbol_t *symbol = *p_symbol;
1588 if (symbol->type == UNINITIALIZED) {
1590 symbol->name);
1593 } else if (symbol->type == ALIAS) {
1594 *p_symbol = symbol->info.ainfo->parent;
1595 } else if ((symbol->type != REGISTER)
1596 && (symbol->type != SCBLOC)
1597 && (symbol->type != SRAMLOC)) {
1599 "Specified symbol %s is not a register",
1600 symbol->name);
1612 if (src->symbol == NULL)
1616 test_writable_symbol(dest->symbol);
1617 test_readable_symbol(src->symbol);
1620 type_check(dest->symbol, immed, opcode);
1627 f1_instr->destination = dest->symbol->info.rinfo->address
1629 f1_instr->source = src->symbol->info.rinfo->address
1635 else if (dest->symbol == mode_ptr.symbol) {
1643 if (src->symbol == allones.symbol)
1645 else if (src->symbol == allzeros.symbol)
1647 else if (src->symbol == mode_ptr.symbol)
1688 if (src->symbol == NULL)
1692 test_writable_symbol(dest->symbol);
1693 test_readable_symbol(src->symbol);
1700 f2_instr->destination = dest->symbol->info.rinfo->address
1702 f2_instr->source = src->symbol->info.rinfo->address
1750 test_readable_symbol(src->symbol);
1753 type_check(src->symbol, immed, opcode);
1758 if (address->symbol == NULL) {
1761 } else if (address->symbol->type == UNINITIALIZED) {
1764 instr->patch_label = address->symbol;
1766 addr = address->symbol->info.linfo->address + address->offset;
1769 f3_instr->source = src->symbol->info.rinfo->address
1781 test_readable_symbol(symbol_t *symbol)
1784 if ((symbol->info.rinfo->modes & (0x1 << src_mode)) == 0) {
1787 symbol->name, src_mode);
1791 if (symbol->info.rinfo->mode == WO) {
1799 test_writable_symbol(symbol_t *symbol)
1802 if ((symbol->info.rinfo->modes & (0x1 << dst_mode)) == 0) {
1805 symbol->name, dst_mode);
1809 if (symbol->info.rinfo->mode == RO) {
1817 type_check(symbol_t *symbol, expression_t *expression, int opcode)
1832 && (expression->value & ~symbol->info.rinfo->valid_bitmask) != 0) {
1835 expression->value & ~symbol->info.rinfo->valid_bitmask,
1836 symbol->name);
1845 if (symbol->info.rinfo->typecheck_masks != FALSE) {
1849 if ((node->symbol->type == MASK
1850 || node->symbol->type == FIELD
1851 || node->symbol->type == ENUM
1852 || node->symbol->type == ENUM_ENTRY)
1853 && symlist_search(&node->symbol->info.finfo->symrefs,
1854 symbol->name) == NULL) {
1858 node->symbol->name, symbol->name);
1874 add_conditional(symbol_t *symbol)
1885 "conflicts with a symbol", EX_DATAERR);
1895 if (symbol->type == CONDITIONAL)
1898 if (symbol->type != UNINITIALIZED) {
1899 stop("Conditional expression conflicts with a symbol",
1904 symbol->type = CONDITIONAL;
1905 initialize_symbol(symbol);
1906 symbol->info.condinfo->func_num = numfuncs++;
1907 symlist_add(&patch_functions, symbol, SYMLIST_INSERT_HEAD);
1943 && (immed->referenced_syms.slh_first->symbol->type == DOWNLOAD_CONST))