• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/aic7xxx/aicasm/

Lines Matching refs:symbol

89 static void initialize_symbol(symbol_t *symbol);
99 static void test_readable_symbol(symbol_t *symbol);
100 static void test_writable_symbol(symbol_t *symbol);
101 static void type_check(symbol_t *symbol, expression_t *expression, int and_op);
103 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",
1540 stop("Invalid current symbol for adding macro arg",
1571 stop("Invalid current symbol for adding macro arg",
1585 symbol_t *symbol = *p_symbol;
1587 if (symbol->type == UNINITIALIZED) {
1589 symbol->name);
1592 } else if (symbol->type == ALIAS) {
1593 *p_symbol = symbol->info.ainfo->parent;
1594 } else if ((symbol->type != REGISTER)
1595 && (symbol->type != SCBLOC)
1596 && (symbol->type != SRAMLOC)) {
1598 "Specified symbol %s is not a register",
1599 symbol->name);
1611 if (src->symbol == NULL)
1615 test_writable_symbol(dest->symbol);
1616 test_readable_symbol(src->symbol);
1619 type_check(dest->symbol, immed, opcode);
1626 f1_instr->destination = dest->symbol->info.rinfo->address
1628 f1_instr->source = src->symbol->info.rinfo->address
1634 else if (dest->symbol == mode_ptr.symbol) {
1642 if (src->symbol == allones.symbol)
1644 else if (src->symbol == allzeros.symbol)
1646 else if (src->symbol == mode_ptr.symbol)
1687 if (src->symbol == NULL)
1691 test_writable_symbol(dest->symbol);
1692 test_readable_symbol(src->symbol);
1699 f2_instr->destination = dest->symbol->info.rinfo->address
1701 f2_instr->source = src->symbol->info.rinfo->address
1749 test_readable_symbol(src->symbol);
1752 type_check(src->symbol, immed, opcode);
1757 if (address->symbol == NULL) {
1760 } else if (address->symbol->type == UNINITIALIZED) {
1763 instr->patch_label = address->symbol;
1765 addr = address->symbol->info.linfo->address + address->offset;
1768 f3_instr->source = src->symbol->info.rinfo->address
1780 test_readable_symbol(symbol_t *symbol)
1783 if ((symbol->info.rinfo->modes & (0x1 << src_mode)) == 0) {
1786 symbol->name, src_mode);
1790 if (symbol->info.rinfo->mode == WO) {
1798 test_writable_symbol(symbol_t *symbol)
1801 if ((symbol->info.rinfo->modes & (0x1 << dst_mode)) == 0) {
1804 symbol->name, dst_mode);
1808 if (symbol->info.rinfo->mode == RO) {
1816 type_check(symbol_t *symbol, expression_t *expression, int opcode)
1836 invalid_bits = expression->value & ~symbol->info.rinfo->valid_bitmask;
1840 invalid_bits, symbol->name);
1849 if (symbol->info.rinfo->typecheck_masks != FALSE) {
1853 if ((node->symbol->type == MASK
1854 || node->symbol->type == FIELD
1855 || node->symbol->type == ENUM
1856 || node->symbol->type == ENUM_ENTRY)
1857 && symlist_search(&node->symbol->info.finfo->symrefs,
1858 symbol->name) == NULL) {
1862 node->symbol->name, symbol->name);
1878 add_conditional(symbol_t *symbol)
1889 "conflicts with a symbol", EX_DATAERR);
1899 if (symbol->type == CONDITIONAL)
1902 if (symbol->type != UNINITIALIZED) {
1903 stop("Conditional expression conflicts with a symbol",
1908 symbol->type = CONDITIONAL;
1909 initialize_symbol(symbol);
1910 symbol->info.condinfo->func_num = numfuncs++;
1911 symlist_add(&patch_functions, symbol, SYMLIST_INSERT_HEAD);
1944 && (immed->referenced_syms.slh_first->symbol->type == DOWNLOAD_CONST))