Lines Matching +full:a +full:- +full:f0 +full:- +full:9

2 # SPDX-License-Identifier: GPL-2.0
4 # Generates a list of Control-Flow Integrity (CFI) jump table symbols
17 if ($_ eq '--module') {
22 die "$0: usage $0 [--module] binary";
45 ## trims leading zeros from a string
56 open(my $fh, "\"$readelf\" --symbols \"$file\" 2>/dev/null | grep __cfi_jt_ |")
62 my ($addr, $name) = $_ =~ /\:.*([a-f0-9]{16}).*\s__cfi_jt_(.*)/;
64 $cfi_jt->{$name} = $addr;
70 die "$0: ERROR: __cfi_jt_start symbol missing" if !exists($cfi_jt->{"start"});
71 die "$0: ERROR: __cfi_jt_end symbol missing" if !exists($cfi_jt->{"end"});
83 my ($addr, $symbol) = $_ =~ /^([a-f0-9]{16})\s<([^>]+)>\:/;
96 my ($hint) = $_ =~ /^\s*([a-f0-9]+)\:.*\s+hint\s+#/;
110 my ($symbol, $expr, $offset) = $target =~ /^(\S*)([-\+])0x([a-f0-9]+)?$/;
118 my $actual = $text_symbols->{"$symbol+$offset"};
133 /^\s*([a-f0-9]+)\:.*(b|jmpq?)\s+0x[a-f0-9]+\s+<([^>]+)>/;
157 my ($addr, $type, $reloc_target) = /\s*([a-f0-9]{16})\:\s+R_(\S+)\s+(\S+)$/;
168 ## walks through the jump table looking for branches and prints out a jump
173 open(my $fh, "\"$objdump\" -d -r " .
174 "--start-address=0x" . $cfi_jt->{"start"} .
175 " --stop-address=0x" . $cfi_jt->{"end"} .
200 # ignore functions with a canonical jump table
206 $cfi_jt->{$last_branch_addr} = $cfi_jt_symbol;
228 # With -fpatchable-function-entry, LLD isn't happy without this
244 open(my $fh, "\"$objdump\" --syms \"$file\" 2>/dev/null |")
250 # llvm/tools/llvm-objdump/objdump.cpp:objdump::printSymbol
252 /^([a-f0-9]{16})\s.{5}(.).{2}(\S+)\s[a-f0-9]{16}(\s\.\S+)?\s(.*)$/;
267 $text_symbols->{"$section+$addr"} = $symbol;
274 ## prints out the remaining symbols from nm -n, filtering out the unnecessary
277 open(my $fh, "\"$nm\" -n \"$file\" 2>/dev/null |")
283 my ($addr, $symbol) = $_ =~ /^([a-f0-9]{16})\s.\s(.*)$/;
288 exists($cfi_jt->{$addr})) {