Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static bool
- register_name (expressionS *expressionP, struct svp64_ctx *svp64)
- {
- char *name;
- char *start;
- char c;
- char save_lex = lex_type[':'];
- const struct powerpc_pd_reg *reg = NULL;
- /* Find the spelling of the operand. */
- start = name = input_line_pointer;
- if (name[0] == '%' && ISALPHA (name[1]))
- name = ++input_line_pointer;
- else if (!reg_names_p || !ISALPHA (name[0]))
- return false;
- if (svp64)
- lex_type[':'] |= LEX_NAME;
- c = get_symbol_name (&name);
- lex_type[':'] = save_lex;
- if (svp64)
- reg = reg_name_search (svp64_registers, svp64_num_registers, name);
- if (reg == NULL)
- reg = reg_name_search (pre_defined_registers, REG_NAME_CNT, name);
- /* Put back the delimiting char. */
- *input_line_pointer = c;
- /* Look to see if it's in the register table. */
- if (reg != NULL)
- {
- expressionP->X_op = O_register;
- expressionP->X_add_number = reg->value;
- expressionP->X_md = reg->flags;
- /* Make the rest nice. */
- expressionP->X_add_symbol = NULL;
- expressionP->X_op_symbol = NULL;
- return true;
- }
- /* Reset the line as if we had not done anything. */
- input_line_pointer = start;
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment