| 6657 | } |
| 6658 | |
| 6659 | void copyFrameMap(int32_t* dst, |
| 6660 | uintptr_t* src, |
| 6661 | unsigned mapSizeInBits, |
| 6662 | unsigned offset, |
| 6663 | TraceElement* p) |
| 6664 | { |
| 6665 | if (DebugFrameMaps) { |
| 6666 | fprintf(stderr, " orig roots at ip %3d: ", p->ip); |
| 6667 | printSet(src, ceilingDivide(mapSizeInBits, BitsPerWord)); |
| 6668 | fprintf(stderr, "\n"); |
| 6669 | |
| 6670 | fprintf(stderr, " final roots at ip %3d: ", p->ip); |
| 6671 | } |
| 6672 | |
| 6673 | for (unsigned j = 0; j < p->argumentIndex; ++j) { |
| 6674 | if (getBit(src, j)) { |
| 6675 | if (DebugFrameMaps) { |
| 6676 | fprintf(stderr, "1"); |
| 6677 | } |
| 6678 | setBit(dst, offset + j); |
| 6679 | } else { |
| 6680 | if (DebugFrameMaps) { |
| 6681 | fprintf(stderr, "_"); |
| 6682 | } |
| 6683 | clearBit(dst, offset + j); |
| 6684 | } |
| 6685 | } |
| 6686 | |
| 6687 | if (DebugFrameMaps) { |
| 6688 | fprintf(stderr, "\n"); |
| 6689 | } |
| 6690 | } |
| 6691 | |
| 6692 | class FrameMapTableHeader { |
| 6693 | public: |
no test coverage detected