diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2010-10-12 11:27:20 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2010-10-12 11:27:28 -0400 |
| commit | 37eca0d64a2dbeece25969ec0698e1ff72bdcf39 (patch) | |
| tree | 54ba70f0428f586f4fe28d8b429b9f9e0799a17a /scripts/recordmcount.pl | |
| parent | 277b199800ac90811ac86d215063df1984f51619 (diff) | |
| parent | 3c06806e690885ce978ef180c8f8b6f8c17fb4b4 (diff) | |
Merge branch 'linus' into core/locking
Reason: Pull in the semaphore related changes
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'scripts/recordmcount.pl')
| -rwxr-xr-x | scripts/recordmcount.pl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl index 0171060b5fd6..e67f05486087 100755 --- a/scripts/recordmcount.pl +++ b/scripts/recordmcount.pl | |||
| @@ -159,6 +159,7 @@ my $section_regex; # Find the start of a section | |||
| 159 | my $function_regex; # Find the name of a function | 159 | my $function_regex; # Find the name of a function |
| 160 | # (return offset and func name) | 160 | # (return offset and func name) |
| 161 | my $mcount_regex; # Find the call site to mcount (return offset) | 161 | my $mcount_regex; # Find the call site to mcount (return offset) |
| 162 | my $mcount_adjust; # Address adjustment to mcount offset | ||
| 162 | my $alignment; # The .align value to use for $mcount_section | 163 | my $alignment; # The .align value to use for $mcount_section |
| 163 | my $section_type; # Section header plus possible alignment command | 164 | my $section_type; # Section header plus possible alignment command |
| 164 | my $can_use_local = 0; # If we can use local function references | 165 | my $can_use_local = 0; # If we can use local function references |
| @@ -213,6 +214,7 @@ $section_regex = "Disassembly of section\\s+(\\S+):"; | |||
| 213 | $function_regex = "^([0-9a-fA-F]+)\\s+<(.*?)>:"; | 214 | $function_regex = "^([0-9a-fA-F]+)\\s+<(.*?)>:"; |
| 214 | $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\smcount\$"; | 215 | $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\smcount\$"; |
| 215 | $section_type = '@progbits'; | 216 | $section_type = '@progbits'; |
| 217 | $mcount_adjust = 0; | ||
| 216 | $type = ".long"; | 218 | $type = ".long"; |
| 217 | 219 | ||
| 218 | if ($arch eq "x86_64") { | 220 | if ($arch eq "x86_64") { |
| @@ -351,6 +353,9 @@ if ($arch eq "x86_64") { | |||
| 351 | } elsif ($arch eq "microblaze") { | 353 | } elsif ($arch eq "microblaze") { |
| 352 | # Microblaze calls '_mcount' instead of plain 'mcount'. | 354 | # Microblaze calls '_mcount' instead of plain 'mcount'. |
| 353 | $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s_mcount\$"; | 355 | $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s_mcount\$"; |
| 356 | } elsif ($arch eq "blackfin") { | ||
| 357 | $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s__mcount\$"; | ||
| 358 | $mcount_adjust = -4; | ||
| 354 | } else { | 359 | } else { |
| 355 | die "Arch $arch is not supported with CONFIG_FTRACE_MCOUNT_RECORD"; | 360 | die "Arch $arch is not supported with CONFIG_FTRACE_MCOUNT_RECORD"; |
| 356 | } | 361 | } |
| @@ -511,7 +516,7 @@ while (<IN>) { | |||
| 511 | } | 516 | } |
| 512 | # is this a call site to mcount? If so, record it to print later | 517 | # is this a call site to mcount? If so, record it to print later |
| 513 | if ($text_found && /$mcount_regex/) { | 518 | if ($text_found && /$mcount_regex/) { |
| 514 | push(@offsets, hex $1); | 519 | push(@offsets, (hex $1) + $mcount_adjust); |
| 515 | } | 520 | } |
| 516 | } | 521 | } |
| 517 | 522 | ||
