Lines Matching refs:operand
339 parse_reg (char *str, struct pdp11_code *operand)
349 operand->code = *str - '0';
353 operand->error = _("Bad register name");
360 operand->code = 6;
366 operand->code = 7;
371 operand->error = _("Bad register name");
377 operand->error = _("Bad register name");
385 parse_ac5 (char *str, struct pdp11_code *operand)
398 operand->code = *str - '0';
402 operand->error = _("Bad register name");
408 operand->error = _("Bad register name");
416 parse_ac (char *str, struct pdp11_code *operand)
418 str = parse_ac5 (str, operand);
419 if (!operand->error && operand->code > 3)
421 operand->error = _("Bad register name");
429 parse_expression (char *str, struct pdp11_code *operand)
436 seg = expression (&operand->reloc.exp);
440 operand->error = _("Error in expression");
447 operand->reloc.pc_rel = 0;
453 parse_op_no_deferred (char *str, struct pdp11_code *operand)
462 str = parse_reg (str + 1, operand);
463 if (operand->error)
468 operand->error = _("Missing ')'");
474 operand->code |= 020;
479 operand->code |= 010;
486 str = parse_expression (str + 1, operand);
487 if (operand->error)
489 operand->additional = true;
490 operand->word = operand->reloc.exp.X_add_number;
491 switch (operand->reloc.exp.X_op)
498 operand->reloc.type = BFD_RELOC_16;
499 operand->reloc.pc_rel = 0;
502 if (operand->reloc.exp.X_add_number > 0)
504 operand->error = _("Error in expression");
508 know (operand->reloc.exp.X_add_number < 0);
510 operand->word = literal_float[0];
512 as_warn (_("Low order bits truncated in immediate float operand"));
515 operand->error = _("Error in expression");
518 operand->code = 027;
526 str = parse_reg (str + 2, operand);
527 if (operand->error)
532 operand->error = _("Missing ')'");
535 operand->code |= 040;
540 str = parse_expression (str, operand);
541 if (operand->error)
548 operand->code = 067;
549 operand->additional = 1;
550 operand->word = 0;
551 operand->reloc.type = BFD_RELOC_16_PCREL;
552 operand->reloc.pc_rel = 1;
558 str = parse_reg (str, operand);
559 if (operand->error)
566 operand->error = _("Missing ')'");
571 operand->additional = true;
572 operand->code |= 060;
573 switch (operand->reloc.exp.X_op)
576 operand->reloc.type = BFD_RELOC_16;
577 operand->reloc.pc_rel = 0;
580 if ((operand->code & 7) == 7)
582 operand->reloc.pc_rel = 1;
583 operand->word = operand->reloc.exp.X_add_number;
586 operand->word = operand->reloc.exp.X_add_number;
590 BAD_CASE (operand->reloc.exp.X_op);
600 parse_op_noreg (char *str, struct pdp11_code *operand)
603 operand->error = NULL;
617 str = parse_op_no_deferred (str, operand);
622 str = parse_reg (str + 1, operand);
625 if (operand->error)
627 operand->error = NULL;
628 str = parse_op_no_deferred (str, operand);
632 if (operand->error)
635 operand->code |= 010;
638 str = parse_op_no_deferred (str, operand);
644 parse_op (char *str, struct pdp11_code *operand)
648 str = parse_reg (str, operand);
649 if (!operand->error)
652 operand->error = NULL;
653 parse_ac5 (str, operand);
654 if (!operand->error)
656 operand->error = _("Float AC not legal as integer operand");
660 return parse_op_noreg (str, operand);
664 parse_fop (char *str, struct pdp11_code *operand)
668 str = parse_ac5 (str, operand);
669 if (!operand->error)
672 operand->error = NULL;
673 parse_reg (str, operand);
674 if (!operand->error)
676 operand->error = _("General register not legal as float operand");
680 return parse_op_noreg (str, operand);
759 op1.error = _("operand is not an absolute constant");