diff options
Diffstat (limited to 'tools/perf/builtin-script.c')
-rw-r--r-- | tools/perf/builtin-script.c | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index daf73832743e..04913136bac9 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c | |||
@@ -566,30 +566,10 @@ out: | |||
566 | return 0; | 566 | return 0; |
567 | } | 567 | } |
568 | 568 | ||
569 | static int perf_sample__fprintf_iregs(struct perf_sample *sample, | 569 | static int perf_sample__fprintf_regs(struct regs_dump *regs, uint64_t mask, |
570 | struct perf_event_attr *attr, FILE *fp) | 570 | FILE *fp |
571 | { | 571 | ) |
572 | struct regs_dump *regs = &sample->intr_regs; | ||
573 | uint64_t mask = attr->sample_regs_intr; | ||
574 | unsigned i = 0, r; | ||
575 | int printed = 0; | ||
576 | |||
577 | if (!regs) | ||
578 | return 0; | ||
579 | |||
580 | for_each_set_bit(r, (unsigned long *) &mask, sizeof(mask) * 8) { | ||
581 | u64 val = regs->regs[i++]; | ||
582 | printed += fprintf(fp, "%5s:0x%"PRIx64" ", perf_reg_name(r), val); | ||
583 | } | ||
584 | |||
585 | return printed; | ||
586 | } | ||
587 | |||
588 | static int perf_sample__fprintf_uregs(struct perf_sample *sample, | ||
589 | struct perf_event_attr *attr, FILE *fp) | ||
590 | { | 572 | { |
591 | struct regs_dump *regs = &sample->user_regs; | ||
592 | uint64_t mask = attr->sample_regs_user; | ||
593 | unsigned i = 0, r; | 573 | unsigned i = 0, r; |
594 | int printed = 0; | 574 | int printed = 0; |
595 | 575 | ||
@@ -608,6 +588,20 @@ static int perf_sample__fprintf_uregs(struct perf_sample *sample, | |||
608 | return printed; | 588 | return printed; |
609 | } | 589 | } |
610 | 590 | ||
591 | static int perf_sample__fprintf_iregs(struct perf_sample *sample, | ||
592 | struct perf_event_attr *attr, FILE *fp) | ||
593 | { | ||
594 | return perf_sample__fprintf_regs(&sample->intr_regs, | ||
595 | attr->sample_regs_intr, fp); | ||
596 | } | ||
597 | |||
598 | static int perf_sample__fprintf_uregs(struct perf_sample *sample, | ||
599 | struct perf_event_attr *attr, FILE *fp) | ||
600 | { | ||
601 | return perf_sample__fprintf_regs(&sample->user_regs, | ||
602 | attr->sample_regs_user, fp); | ||
603 | } | ||
604 | |||
611 | static int perf_sample__fprintf_start(struct perf_sample *sample, | 605 | static int perf_sample__fprintf_start(struct perf_sample *sample, |
612 | struct thread *thread, | 606 | struct thread *thread, |
613 | struct perf_evsel *evsel, | 607 | struct perf_evsel *evsel, |