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