- reginsert - insert an operator in front of already-emitted operand * * Means relocating the operand. */
(op, opnd)
| 608 | * Means relocating the operand. |
| 609 | */ |
| 610 | static void |
| 611 | reginsert(op, opnd) |
| 612 | char op; |
| 613 | char *opnd; |
| 614 | { |
| 615 | register char *src; |
| 616 | register char *dst; |
| 617 | register char *place; |
| 618 | |
| 619 | if (regcode == ®dummy) { |
| 620 | regsize += 3; |
| 621 | return; |
| 622 | } |
| 623 | |
| 624 | src = regcode; |
| 625 | regcode += 3; |
| 626 | dst = regcode; |
| 627 | while (src > opnd) |
| 628 | *--dst = *--src; |
| 629 | |
| 630 | place = opnd; /* Op node, where operand used to be. */ |
| 631 | *place++ = op; |
| 632 | *place++ = '\0'; |
| 633 | *place++ = '\0'; |
| 634 | } |
| 635 | |
| 636 | /* |
| 637 | - regtail - set the next-pointer at the end of a node chain |