- reginsert - insert an operator in front of already-emitted operand * * Means relocating the operand. */
| 692 | * Means relocating the operand. |
| 693 | */ |
| 694 | static void |
| 695 | reginsert( |
| 696 | char op, |
| 697 | char *opnd ) |
| 698 | { |
| 699 | register char *src; |
| 700 | register char *dst; |
| 701 | register char *place; |
| 702 | |
| 703 | if (regcode == ®dummy) { |
| 704 | regsize += 3; |
| 705 | return; |
| 706 | } |
| 707 | |
| 708 | src = regcode; |
| 709 | regcode += 3; |
| 710 | dst = regcode; |
| 711 | while (src > opnd) |
| 712 | *--dst = *--src; |
| 713 | |
| 714 | place = opnd; /* Op node, where operand used to be. */ |
| 715 | *place++ = op; |
| 716 | *place++ = '\0'; |
| 717 | *place++ = '\0'; |
| 718 | } |
| 719 | |
| 720 | /* |
| 721 | - regtail - set the next-pointer at the end of a node chain |