/src/bind9/lib/isc/include/isc/ascii.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (C) Internet Systems Consortium, Inc. ("ISC") |
3 | | * |
4 | | * SPDX-License-Identifier: MPL-2.0 |
5 | | * |
6 | | * This Source Code Form is subject to the terms of the Mozilla Public |
7 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
8 | | * file, you can obtain one at https://mozilla.org/MPL/2.0/. |
9 | | * |
10 | | * See the COPYRIGHT file distributed with this work for additional |
11 | | * information regarding copyright ownership. |
12 | | */ |
13 | | |
14 | | #pragma once |
15 | | |
16 | | #include <stdbool.h> |
17 | | #include <stdint.h> |
18 | | #include <string.h> |
19 | | |
20 | | #include <isc/endian.h> |
21 | | |
22 | | /* |
23 | | * ASCII case conversion |
24 | | */ |
25 | | extern const uint8_t isc__ascii_tolower[256]; |
26 | | extern const uint8_t isc__ascii_toupper[256]; |
27 | | |
28 | | /* |
29 | | * Wrappers so we don't have to cast all over the place like <ctype.h> |
30 | | */ |
31 | 105M | #define isc_ascii_tolower(c) isc__ascii_tolower[(uint8_t)(c)] |
32 | 0 | #define isc_ascii_toupper(c) isc__ascii_toupper[(uint8_t)(c)] |
33 | | |
34 | | /* |
35 | | * A variant tolower() implementation with no memory accesses, |
36 | | * for use when the compiler is able to autovectorize. |
37 | | */ |
38 | | static inline uint8_t |
39 | 3.64M | isc__ascii_tolower1(uint8_t c) { |
40 | 3.64M | return c + ('a' - 'A') * ('A' <= c && c <= 'Z'); |
41 | 3.64M | } Unexecuted instantiation: dns_qp.c:isc__ascii_tolower1 Unexecuted instantiation: main.c:isc__ascii_tolower1 Unexecuted instantiation: lib.c:isc__ascii_tolower1 Unexecuted instantiation: qp.c:isc__ascii_tolower1 Unexecuted instantiation: qpzone.c:isc__ascii_tolower1 rdata.c:isc__ascii_tolower1 Line | Count | Source | 39 | 355k | isc__ascii_tolower1(uint8_t c) { | 40 | 355k | return c + ('a' - 'A') * ('A' <= c && c <= 'Z'); | 41 | 355k | } |
Unexecuted instantiation: rdataset.c:isc__ascii_tolower1 Unexecuted instantiation: rdataslab.c:isc__ascii_tolower1 Unexecuted instantiation: ttl.c:isc__ascii_tolower1 compress.c:isc__ascii_tolower1 Line | Count | Source | 39 | 2.98M | isc__ascii_tolower1(uint8_t c) { | 40 | 2.98M | return c + ('a' - 'A') * ('A' <= c && c <= 'Z'); | 41 | 2.98M | } |
Unexecuted instantiation: db.c:isc__ascii_tolower1 Unexecuted instantiation: dlz.c:isc__ascii_tolower1 Unexecuted instantiation: dnssec.c:isc__ascii_tolower1 Unexecuted instantiation: ds.c:isc__ascii_tolower1 Unexecuted instantiation: dst_api.c:isc__ascii_tolower1 Unexecuted instantiation: dyndb.c:isc__ascii_tolower1 Unexecuted instantiation: hmac_link.c:isc__ascii_tolower1 Unexecuted instantiation: kasp.c:isc__ascii_tolower1 Unexecuted instantiation: key.c:isc__ascii_tolower1 Unexecuted instantiation: keystore.c:isc__ascii_tolower1 Unexecuted instantiation: master.c:isc__ascii_tolower1 Unexecuted instantiation: message.c:isc__ascii_tolower1 name.c:isc__ascii_tolower1 Line | Count | Source | 39 | 2.94k | isc__ascii_tolower1(uint8_t c) { | 40 | 2.94k | return c + ('a' - 'A') * ('A' <= c && c <= 'Z'); | 41 | 2.94k | } |
Unexecuted instantiation: ncache.c:isc__ascii_tolower1 Unexecuted instantiation: nsec3.c:isc__ascii_tolower1 Unexecuted instantiation: opensslecdsa_link.c:isc__ascii_tolower1 Unexecuted instantiation: openssleddsa_link.c:isc__ascii_tolower1 Unexecuted instantiation: opensslrsa_link.c:isc__ascii_tolower1 Unexecuted instantiation: qpcache.c:isc__ascii_tolower1 Unexecuted instantiation: rcode.c:isc__ascii_tolower1 Unexecuted instantiation: rdatalist.c:isc__ascii_tolower1 Unexecuted instantiation: rdatasetiter.c:isc__ascii_tolower1 Unexecuted instantiation: soa.c:isc__ascii_tolower1 Unexecuted instantiation: ssu.c:isc__ascii_tolower1 Unexecuted instantiation: ssu_external.c:isc__ascii_tolower1 Unexecuted instantiation: tsig.c:isc__ascii_tolower1 Unexecuted instantiation: view.c:isc__ascii_tolower1 Unexecuted instantiation: zone.c:isc__ascii_tolower1 Unexecuted instantiation: zoneverify.c:isc__ascii_tolower1 Unexecuted instantiation: zt.c:isc__ascii_tolower1 Unexecuted instantiation: xfrin.c:isc__ascii_tolower1 Unexecuted instantiation: adb.c:isc__ascii_tolower1 Unexecuted instantiation: badcache.c:isc__ascii_tolower1 Unexecuted instantiation: cache.c:isc__ascii_tolower1 Unexecuted instantiation: catz.c:isc__ascii_tolower1 Unexecuted instantiation: diff.c:isc__ascii_tolower1 Unexecuted instantiation: dispatch.c:isc__ascii_tolower1 Unexecuted instantiation: dns64.c:isc__ascii_tolower1 Unexecuted instantiation: dst_parse.c:isc__ascii_tolower1 Unexecuted instantiation: forward.c:isc__ascii_tolower1 Unexecuted instantiation: gssapictx.c:isc__ascii_tolower1 Unexecuted instantiation: ipkeylist.c:isc__ascii_tolower1 Unexecuted instantiation: journal.c:isc__ascii_tolower1 Unexecuted instantiation: keydata.c:isc__ascii_tolower1 Unexecuted instantiation: keymgr.c:isc__ascii_tolower1 Unexecuted instantiation: keytable.c:isc__ascii_tolower1 Unexecuted instantiation: masterdump.c:isc__ascii_tolower1 Unexecuted instantiation: nametree.c:isc__ascii_tolower1 Unexecuted instantiation: nsec.c:isc__ascii_tolower1 Unexecuted instantiation: nta.c:isc__ascii_tolower1 Unexecuted instantiation: openssl_link.c:isc__ascii_tolower1 Unexecuted instantiation: order.c:isc__ascii_tolower1 Unexecuted instantiation: peer.c:isc__ascii_tolower1 Unexecuted instantiation: private.c:isc__ascii_tolower1 Unexecuted instantiation: remote.c:isc__ascii_tolower1 Unexecuted instantiation: request.c:isc__ascii_tolower1 Unexecuted instantiation: resolver.c:isc__ascii_tolower1 Unexecuted instantiation: rootns.c:isc__ascii_tolower1 Unexecuted instantiation: rpz.c:isc__ascii_tolower1 Unexecuted instantiation: rriterator.c:isc__ascii_tolower1 Unexecuted instantiation: rrl.c:isc__ascii_tolower1 Unexecuted instantiation: skr.c:isc__ascii_tolower1 Unexecuted instantiation: transport.c:isc__ascii_tolower1 Unexecuted instantiation: unreachcache.c:isc__ascii_tolower1 Unexecuted instantiation: update.c:isc__ascii_tolower1 Unexecuted instantiation: validator.c:isc__ascii_tolower1 Unexecuted instantiation: ede.c:isc__ascii_tolower1 Unexecuted instantiation: netmgr.c:isc__ascii_tolower1 Unexecuted instantiation: proxystream.c:isc__ascii_tolower1 Unexecuted instantiation: proxyudp.c:isc__ascii_tolower1 Unexecuted instantiation: socket.c:isc__ascii_tolower1 Unexecuted instantiation: streamdns.c:isc__ascii_tolower1 Unexecuted instantiation: tcp.c:isc__ascii_tolower1 Unexecuted instantiation: timer.c:isc__ascii_tolower1 Unexecuted instantiation: tlsstream.c:isc__ascii_tolower1 Unexecuted instantiation: udp.c:isc__ascii_tolower1 Unexecuted instantiation: rwlock.c:isc__ascii_tolower1 Unexecuted instantiation: ascii.c:isc__ascii_tolower1 hash.c:isc__ascii_tolower1 Line | Count | Source | 39 | 309k | isc__ascii_tolower1(uint8_t c) { | 40 | 309k | return c + ('a' - 'A') * ('A' <= c && c <= 'Z'); | 41 | 309k | } |
Unexecuted instantiation: hashmap.c:isc__ascii_tolower1 Unexecuted instantiation: ht.c:isc__ascii_tolower1 Unexecuted instantiation: mem.c:isc__ascii_tolower1 Unexecuted instantiation: netaddr.c:isc__ascii_tolower1 Unexecuted instantiation: proxy2.c:isc__ascii_tolower1 Unexecuted instantiation: sockaddr.c:isc__ascii_tolower1 Unexecuted instantiation: tls.c:isc__ascii_tolower1 Unexecuted instantiation: http.c:isc__ascii_tolower1 Unexecuted instantiation: dns_rdata_fromtext.c:isc__ascii_tolower1 Unexecuted instantiation: dns_qpkey_name.c:isc__ascii_tolower1 Unexecuted instantiation: dns_master_load.c:isc__ascii_tolower1 Unexecuted instantiation: dns_rdata_fromwire_text.c:isc__ascii_tolower1 Unexecuted instantiation: dns_name_fromwire.c:isc__ascii_tolower1 Unexecuted instantiation: old.c:isc__ascii_tolower1 Unexecuted instantiation: isc_lex_getmastertoken.c:isc__ascii_tolower1 Unexecuted instantiation: isc_lex_gettoken.c:isc__ascii_tolower1 Unexecuted instantiation: dns_message_checksig.c:isc__ascii_tolower1 Unexecuted instantiation: dns_name_fromtext_target.c:isc__ascii_tolower1 Unexecuted instantiation: dns_message_parse.c:isc__ascii_tolower1 |
42 | | |
43 | | /* |
44 | | * Copy `len` bytes from `src` to `dst`, converting to lower case. |
45 | | */ |
46 | | static inline void |
47 | 97.6k | isc_ascii_lowercopy(uint8_t *dst, const uint8_t *src, unsigned int len) { |
48 | 455k | while (len-- > 0) { |
49 | 358k | *dst++ = isc__ascii_tolower1(*src++); |
50 | 358k | } |
51 | 97.6k | } Unexecuted instantiation: dns_qp.c:isc_ascii_lowercopy Unexecuted instantiation: main.c:isc_ascii_lowercopy Unexecuted instantiation: lib.c:isc_ascii_lowercopy Unexecuted instantiation: qp.c:isc_ascii_lowercopy Unexecuted instantiation: qpzone.c:isc_ascii_lowercopy rdata.c:isc_ascii_lowercopy Line | Count | Source | 47 | 97.3k | isc_ascii_lowercopy(uint8_t *dst, const uint8_t *src, unsigned int len) { | 48 | 452k | while (len-- > 0) { | 49 | 355k | *dst++ = isc__ascii_tolower1(*src++); | 50 | 355k | } | 51 | 97.3k | } |
Unexecuted instantiation: rdataset.c:isc_ascii_lowercopy Unexecuted instantiation: rdataslab.c:isc_ascii_lowercopy Unexecuted instantiation: ttl.c:isc_ascii_lowercopy Unexecuted instantiation: compress.c:isc_ascii_lowercopy Unexecuted instantiation: db.c:isc_ascii_lowercopy Unexecuted instantiation: dlz.c:isc_ascii_lowercopy Unexecuted instantiation: dnssec.c:isc_ascii_lowercopy Unexecuted instantiation: ds.c:isc_ascii_lowercopy Unexecuted instantiation: dst_api.c:isc_ascii_lowercopy Unexecuted instantiation: dyndb.c:isc_ascii_lowercopy Unexecuted instantiation: hmac_link.c:isc_ascii_lowercopy Unexecuted instantiation: kasp.c:isc_ascii_lowercopy Unexecuted instantiation: key.c:isc_ascii_lowercopy Unexecuted instantiation: keystore.c:isc_ascii_lowercopy Unexecuted instantiation: master.c:isc_ascii_lowercopy Unexecuted instantiation: message.c:isc_ascii_lowercopy name.c:isc_ascii_lowercopy Line | Count | Source | 47 | 294 | isc_ascii_lowercopy(uint8_t *dst, const uint8_t *src, unsigned int len) { | 48 | 3.23k | while (len-- > 0) { | 49 | 2.94k | *dst++ = isc__ascii_tolower1(*src++); | 50 | 2.94k | } | 51 | 294 | } |
Unexecuted instantiation: ncache.c:isc_ascii_lowercopy Unexecuted instantiation: nsec3.c:isc_ascii_lowercopy Unexecuted instantiation: opensslecdsa_link.c:isc_ascii_lowercopy Unexecuted instantiation: openssleddsa_link.c:isc_ascii_lowercopy Unexecuted instantiation: opensslrsa_link.c:isc_ascii_lowercopy Unexecuted instantiation: qpcache.c:isc_ascii_lowercopy Unexecuted instantiation: rcode.c:isc_ascii_lowercopy Unexecuted instantiation: rdatalist.c:isc_ascii_lowercopy Unexecuted instantiation: rdatasetiter.c:isc_ascii_lowercopy Unexecuted instantiation: soa.c:isc_ascii_lowercopy Unexecuted instantiation: ssu.c:isc_ascii_lowercopy Unexecuted instantiation: ssu_external.c:isc_ascii_lowercopy Unexecuted instantiation: tsig.c:isc_ascii_lowercopy Unexecuted instantiation: view.c:isc_ascii_lowercopy Unexecuted instantiation: zone.c:isc_ascii_lowercopy Unexecuted instantiation: zoneverify.c:isc_ascii_lowercopy Unexecuted instantiation: zt.c:isc_ascii_lowercopy Unexecuted instantiation: xfrin.c:isc_ascii_lowercopy Unexecuted instantiation: adb.c:isc_ascii_lowercopy Unexecuted instantiation: badcache.c:isc_ascii_lowercopy Unexecuted instantiation: cache.c:isc_ascii_lowercopy Unexecuted instantiation: catz.c:isc_ascii_lowercopy Unexecuted instantiation: diff.c:isc_ascii_lowercopy Unexecuted instantiation: dispatch.c:isc_ascii_lowercopy Unexecuted instantiation: dns64.c:isc_ascii_lowercopy Unexecuted instantiation: dst_parse.c:isc_ascii_lowercopy Unexecuted instantiation: forward.c:isc_ascii_lowercopy Unexecuted instantiation: gssapictx.c:isc_ascii_lowercopy Unexecuted instantiation: ipkeylist.c:isc_ascii_lowercopy Unexecuted instantiation: journal.c:isc_ascii_lowercopy Unexecuted instantiation: keydata.c:isc_ascii_lowercopy Unexecuted instantiation: keymgr.c:isc_ascii_lowercopy Unexecuted instantiation: keytable.c:isc_ascii_lowercopy Unexecuted instantiation: masterdump.c:isc_ascii_lowercopy Unexecuted instantiation: nametree.c:isc_ascii_lowercopy Unexecuted instantiation: nsec.c:isc_ascii_lowercopy Unexecuted instantiation: nta.c:isc_ascii_lowercopy Unexecuted instantiation: openssl_link.c:isc_ascii_lowercopy Unexecuted instantiation: order.c:isc_ascii_lowercopy Unexecuted instantiation: peer.c:isc_ascii_lowercopy Unexecuted instantiation: private.c:isc_ascii_lowercopy Unexecuted instantiation: remote.c:isc_ascii_lowercopy Unexecuted instantiation: request.c:isc_ascii_lowercopy Unexecuted instantiation: resolver.c:isc_ascii_lowercopy Unexecuted instantiation: rootns.c:isc_ascii_lowercopy Unexecuted instantiation: rpz.c:isc_ascii_lowercopy Unexecuted instantiation: rriterator.c:isc_ascii_lowercopy Unexecuted instantiation: rrl.c:isc_ascii_lowercopy Unexecuted instantiation: skr.c:isc_ascii_lowercopy Unexecuted instantiation: transport.c:isc_ascii_lowercopy Unexecuted instantiation: unreachcache.c:isc_ascii_lowercopy Unexecuted instantiation: update.c:isc_ascii_lowercopy Unexecuted instantiation: validator.c:isc_ascii_lowercopy Unexecuted instantiation: ede.c:isc_ascii_lowercopy Unexecuted instantiation: netmgr.c:isc_ascii_lowercopy Unexecuted instantiation: proxystream.c:isc_ascii_lowercopy Unexecuted instantiation: proxyudp.c:isc_ascii_lowercopy Unexecuted instantiation: socket.c:isc_ascii_lowercopy Unexecuted instantiation: streamdns.c:isc_ascii_lowercopy Unexecuted instantiation: tcp.c:isc_ascii_lowercopy Unexecuted instantiation: timer.c:isc_ascii_lowercopy Unexecuted instantiation: tlsstream.c:isc_ascii_lowercopy Unexecuted instantiation: udp.c:isc_ascii_lowercopy Unexecuted instantiation: rwlock.c:isc_ascii_lowercopy Unexecuted instantiation: ascii.c:isc_ascii_lowercopy Unexecuted instantiation: hash.c:isc_ascii_lowercopy Unexecuted instantiation: hashmap.c:isc_ascii_lowercopy Unexecuted instantiation: ht.c:isc_ascii_lowercopy Unexecuted instantiation: mem.c:isc_ascii_lowercopy Unexecuted instantiation: netaddr.c:isc_ascii_lowercopy Unexecuted instantiation: proxy2.c:isc_ascii_lowercopy Unexecuted instantiation: sockaddr.c:isc_ascii_lowercopy Unexecuted instantiation: tls.c:isc_ascii_lowercopy Unexecuted instantiation: http.c:isc_ascii_lowercopy Unexecuted instantiation: dns_rdata_fromtext.c:isc_ascii_lowercopy Unexecuted instantiation: dns_qpkey_name.c:isc_ascii_lowercopy Unexecuted instantiation: dns_master_load.c:isc_ascii_lowercopy Unexecuted instantiation: dns_rdata_fromwire_text.c:isc_ascii_lowercopy Unexecuted instantiation: dns_name_fromwire.c:isc_ascii_lowercopy Unexecuted instantiation: old.c:isc_ascii_lowercopy Unexecuted instantiation: isc_lex_getmastertoken.c:isc_ascii_lowercopy Unexecuted instantiation: isc_lex_gettoken.c:isc_ascii_lowercopy Unexecuted instantiation: dns_message_checksig.c:isc_ascii_lowercopy Unexecuted instantiation: dns_name_fromtext_target.c:isc_ascii_lowercopy Unexecuted instantiation: dns_message_parse.c:isc_ascii_lowercopy |
52 | | |
53 | | /* |
54 | | * Convert a string to lower case in place |
55 | | */ |
56 | | static inline void |
57 | 97.3k | isc_ascii_strtolower(char *str) { |
58 | 97.3k | isc_ascii_lowercopy((uint8_t *)str, (uint8_t *)str, |
59 | 97.3k | (unsigned int)strlen(str)); |
60 | 97.3k | } Unexecuted instantiation: dns_qp.c:isc_ascii_strtolower Unexecuted instantiation: main.c:isc_ascii_strtolower Unexecuted instantiation: lib.c:isc_ascii_strtolower Unexecuted instantiation: qp.c:isc_ascii_strtolower Unexecuted instantiation: qpzone.c:isc_ascii_strtolower rdata.c:isc_ascii_strtolower Line | Count | Source | 57 | 97.3k | isc_ascii_strtolower(char *str) { | 58 | 97.3k | isc_ascii_lowercopy((uint8_t *)str, (uint8_t *)str, | 59 | 97.3k | (unsigned int)strlen(str)); | 60 | 97.3k | } |
Unexecuted instantiation: rdataset.c:isc_ascii_strtolower Unexecuted instantiation: rdataslab.c:isc_ascii_strtolower Unexecuted instantiation: ttl.c:isc_ascii_strtolower Unexecuted instantiation: compress.c:isc_ascii_strtolower Unexecuted instantiation: db.c:isc_ascii_strtolower Unexecuted instantiation: dlz.c:isc_ascii_strtolower Unexecuted instantiation: dnssec.c:isc_ascii_strtolower Unexecuted instantiation: ds.c:isc_ascii_strtolower Unexecuted instantiation: dst_api.c:isc_ascii_strtolower Unexecuted instantiation: dyndb.c:isc_ascii_strtolower Unexecuted instantiation: hmac_link.c:isc_ascii_strtolower Unexecuted instantiation: kasp.c:isc_ascii_strtolower Unexecuted instantiation: key.c:isc_ascii_strtolower Unexecuted instantiation: keystore.c:isc_ascii_strtolower Unexecuted instantiation: master.c:isc_ascii_strtolower Unexecuted instantiation: message.c:isc_ascii_strtolower Unexecuted instantiation: name.c:isc_ascii_strtolower Unexecuted instantiation: ncache.c:isc_ascii_strtolower Unexecuted instantiation: nsec3.c:isc_ascii_strtolower Unexecuted instantiation: opensslecdsa_link.c:isc_ascii_strtolower Unexecuted instantiation: openssleddsa_link.c:isc_ascii_strtolower Unexecuted instantiation: opensslrsa_link.c:isc_ascii_strtolower Unexecuted instantiation: qpcache.c:isc_ascii_strtolower Unexecuted instantiation: rcode.c:isc_ascii_strtolower Unexecuted instantiation: rdatalist.c:isc_ascii_strtolower Unexecuted instantiation: rdatasetiter.c:isc_ascii_strtolower Unexecuted instantiation: soa.c:isc_ascii_strtolower Unexecuted instantiation: ssu.c:isc_ascii_strtolower Unexecuted instantiation: ssu_external.c:isc_ascii_strtolower Unexecuted instantiation: tsig.c:isc_ascii_strtolower Unexecuted instantiation: view.c:isc_ascii_strtolower Unexecuted instantiation: zone.c:isc_ascii_strtolower Unexecuted instantiation: zoneverify.c:isc_ascii_strtolower Unexecuted instantiation: zt.c:isc_ascii_strtolower Unexecuted instantiation: xfrin.c:isc_ascii_strtolower Unexecuted instantiation: adb.c:isc_ascii_strtolower Unexecuted instantiation: badcache.c:isc_ascii_strtolower Unexecuted instantiation: cache.c:isc_ascii_strtolower Unexecuted instantiation: catz.c:isc_ascii_strtolower Unexecuted instantiation: diff.c:isc_ascii_strtolower Unexecuted instantiation: dispatch.c:isc_ascii_strtolower Unexecuted instantiation: dns64.c:isc_ascii_strtolower Unexecuted instantiation: dst_parse.c:isc_ascii_strtolower Unexecuted instantiation: forward.c:isc_ascii_strtolower Unexecuted instantiation: gssapictx.c:isc_ascii_strtolower Unexecuted instantiation: ipkeylist.c:isc_ascii_strtolower Unexecuted instantiation: journal.c:isc_ascii_strtolower Unexecuted instantiation: keydata.c:isc_ascii_strtolower Unexecuted instantiation: keymgr.c:isc_ascii_strtolower Unexecuted instantiation: keytable.c:isc_ascii_strtolower Unexecuted instantiation: masterdump.c:isc_ascii_strtolower Unexecuted instantiation: nametree.c:isc_ascii_strtolower Unexecuted instantiation: nsec.c:isc_ascii_strtolower Unexecuted instantiation: nta.c:isc_ascii_strtolower Unexecuted instantiation: openssl_link.c:isc_ascii_strtolower Unexecuted instantiation: order.c:isc_ascii_strtolower Unexecuted instantiation: peer.c:isc_ascii_strtolower Unexecuted instantiation: private.c:isc_ascii_strtolower Unexecuted instantiation: remote.c:isc_ascii_strtolower Unexecuted instantiation: request.c:isc_ascii_strtolower Unexecuted instantiation: resolver.c:isc_ascii_strtolower Unexecuted instantiation: rootns.c:isc_ascii_strtolower Unexecuted instantiation: rpz.c:isc_ascii_strtolower Unexecuted instantiation: rriterator.c:isc_ascii_strtolower Unexecuted instantiation: rrl.c:isc_ascii_strtolower Unexecuted instantiation: skr.c:isc_ascii_strtolower Unexecuted instantiation: transport.c:isc_ascii_strtolower Unexecuted instantiation: unreachcache.c:isc_ascii_strtolower Unexecuted instantiation: update.c:isc_ascii_strtolower Unexecuted instantiation: validator.c:isc_ascii_strtolower Unexecuted instantiation: ede.c:isc_ascii_strtolower Unexecuted instantiation: netmgr.c:isc_ascii_strtolower Unexecuted instantiation: proxystream.c:isc_ascii_strtolower Unexecuted instantiation: proxyudp.c:isc_ascii_strtolower Unexecuted instantiation: socket.c:isc_ascii_strtolower Unexecuted instantiation: streamdns.c:isc_ascii_strtolower Unexecuted instantiation: tcp.c:isc_ascii_strtolower Unexecuted instantiation: timer.c:isc_ascii_strtolower Unexecuted instantiation: tlsstream.c:isc_ascii_strtolower Unexecuted instantiation: udp.c:isc_ascii_strtolower Unexecuted instantiation: rwlock.c:isc_ascii_strtolower Unexecuted instantiation: ascii.c:isc_ascii_strtolower Unexecuted instantiation: hash.c:isc_ascii_strtolower Unexecuted instantiation: hashmap.c:isc_ascii_strtolower Unexecuted instantiation: ht.c:isc_ascii_strtolower Unexecuted instantiation: mem.c:isc_ascii_strtolower Unexecuted instantiation: netaddr.c:isc_ascii_strtolower Unexecuted instantiation: proxy2.c:isc_ascii_strtolower Unexecuted instantiation: sockaddr.c:isc_ascii_strtolower Unexecuted instantiation: tls.c:isc_ascii_strtolower Unexecuted instantiation: http.c:isc_ascii_strtolower Unexecuted instantiation: dns_rdata_fromtext.c:isc_ascii_strtolower Unexecuted instantiation: dns_qpkey_name.c:isc_ascii_strtolower Unexecuted instantiation: dns_master_load.c:isc_ascii_strtolower Unexecuted instantiation: dns_rdata_fromwire_text.c:isc_ascii_strtolower Unexecuted instantiation: dns_name_fromwire.c:isc_ascii_strtolower Unexecuted instantiation: old.c:isc_ascii_strtolower Unexecuted instantiation: isc_lex_getmastertoken.c:isc_ascii_strtolower Unexecuted instantiation: isc_lex_gettoken.c:isc_ascii_strtolower Unexecuted instantiation: dns_message_checksig.c:isc_ascii_strtolower Unexecuted instantiation: dns_name_fromtext_target.c:isc_ascii_strtolower Unexecuted instantiation: dns_message_parse.c:isc_ascii_strtolower |
61 | | |
62 | | /* |
63 | | * Convert 8 bytes to lower case, using SWAR tricks (SIMD within a register). |
64 | | * Based on "Hacker's Delight" by Henry S. Warren, "searching for a value in a |
65 | | * given range", p. 95. Eight bytes is wider than many labels in DNS names, so |
66 | | * it does not seem worth dealing with the portability issues of wide vector |
67 | | * registers. If there was a vector string load instruction (analogous to |
68 | | * memove() below) the balance might be different. |
69 | | */ |
70 | | static inline uint64_t |
71 | 31.6M | isc_ascii_tolower8(uint64_t octets) { |
72 | | /* |
73 | | * Multiply a single-byte constant by `all_bytes` to replicate |
74 | | * it to all eight bytes in a word. |
75 | | */ |
76 | 31.6M | uint64_t all_bytes = 0x0101010101010101; |
77 | | /* |
78 | | * Clear the top bit of each byte to make space for a per-byte flag. |
79 | | */ |
80 | 31.6M | uint64_t heptets = octets & (0x7F * all_bytes); |
81 | | /* |
82 | | * We will need to avoid going wrong if our flag bits were originally |
83 | | * set, and clear calculation leftovers in our non-flag bits |
84 | | */ |
85 | 31.6M | uint64_t is_ascii = ~octets & (0x80 * all_bytes); |
86 | | /* |
87 | | * To compare a heptet to `N`, we can add `0x7F - N` so that carry |
88 | | * propagation will set the flag when our heptet is greater than `N` |
89 | | */ |
90 | 31.6M | uint64_t is_gt_Z = heptets + (0x7F - 'Z') * all_bytes; |
91 | | /* |
92 | | * Add one for greater-than-or-equal comparison |
93 | | */ |
94 | 31.6M | uint64_t is_ge_A = heptets + (0x80 - 'A') * all_bytes; |
95 | | /* |
96 | | * Now we have what we need to identify the ascii uppercase bytes |
97 | | */ |
98 | 31.6M | uint64_t is_upper = (is_ge_A ^ is_gt_Z) & is_ascii; |
99 | | /* |
100 | | * Move the is_upper flag bits to bit 0x20 (which is 'a' - 'A') |
101 | | * and use them to adjust each byte as required |
102 | | */ |
103 | 31.6M | return octets | (is_upper >> 2); |
104 | 31.6M | } Unexecuted instantiation: dns_qp.c:isc_ascii_tolower8 Unexecuted instantiation: main.c:isc_ascii_tolower8 Unexecuted instantiation: lib.c:isc_ascii_tolower8 Unexecuted instantiation: qp.c:isc_ascii_tolower8 Unexecuted instantiation: qpzone.c:isc_ascii_tolower8 Unexecuted instantiation: rdata.c:isc_ascii_tolower8 Unexecuted instantiation: rdataset.c:isc_ascii_tolower8 Unexecuted instantiation: rdataslab.c:isc_ascii_tolower8 Unexecuted instantiation: ttl.c:isc_ascii_tolower8 compress.c:isc_ascii_tolower8 Line | Count | Source | 71 | 701k | isc_ascii_tolower8(uint64_t octets) { | 72 | | /* | 73 | | * Multiply a single-byte constant by `all_bytes` to replicate | 74 | | * it to all eight bytes in a word. | 75 | | */ | 76 | 701k | uint64_t all_bytes = 0x0101010101010101; | 77 | | /* | 78 | | * Clear the top bit of each byte to make space for a per-byte flag. | 79 | | */ | 80 | 701k | uint64_t heptets = octets & (0x7F * all_bytes); | 81 | | /* | 82 | | * We will need to avoid going wrong if our flag bits were originally | 83 | | * set, and clear calculation leftovers in our non-flag bits | 84 | | */ | 85 | 701k | uint64_t is_ascii = ~octets & (0x80 * all_bytes); | 86 | | /* | 87 | | * To compare a heptet to `N`, we can add `0x7F - N` so that carry | 88 | | * propagation will set the flag when our heptet is greater than `N` | 89 | | */ | 90 | 701k | uint64_t is_gt_Z = heptets + (0x7F - 'Z') * all_bytes; | 91 | | /* | 92 | | * Add one for greater-than-or-equal comparison | 93 | | */ | 94 | 701k | uint64_t is_ge_A = heptets + (0x80 - 'A') * all_bytes; | 95 | | /* | 96 | | * Now we have what we need to identify the ascii uppercase bytes | 97 | | */ | 98 | 701k | uint64_t is_upper = (is_ge_A ^ is_gt_Z) & is_ascii; | 99 | | /* | 100 | | * Move the is_upper flag bits to bit 0x20 (which is 'a' - 'A') | 101 | | * and use them to adjust each byte as required | 102 | | */ | 103 | 701k | return octets | (is_upper >> 2); | 104 | 701k | } |
Unexecuted instantiation: db.c:isc_ascii_tolower8 Unexecuted instantiation: dlz.c:isc_ascii_tolower8 Unexecuted instantiation: dnssec.c:isc_ascii_tolower8 Unexecuted instantiation: ds.c:isc_ascii_tolower8 Unexecuted instantiation: dst_api.c:isc_ascii_tolower8 Unexecuted instantiation: dyndb.c:isc_ascii_tolower8 Unexecuted instantiation: hmac_link.c:isc_ascii_tolower8 Unexecuted instantiation: kasp.c:isc_ascii_tolower8 Unexecuted instantiation: key.c:isc_ascii_tolower8 Unexecuted instantiation: keystore.c:isc_ascii_tolower8 Unexecuted instantiation: master.c:isc_ascii_tolower8 Unexecuted instantiation: message.c:isc_ascii_tolower8 name.c:isc_ascii_tolower8 Line | Count | Source | 71 | 30.9M | isc_ascii_tolower8(uint64_t octets) { | 72 | | /* | 73 | | * Multiply a single-byte constant by `all_bytes` to replicate | 74 | | * it to all eight bytes in a word. | 75 | | */ | 76 | 30.9M | uint64_t all_bytes = 0x0101010101010101; | 77 | | /* | 78 | | * Clear the top bit of each byte to make space for a per-byte flag. | 79 | | */ | 80 | 30.9M | uint64_t heptets = octets & (0x7F * all_bytes); | 81 | | /* | 82 | | * We will need to avoid going wrong if our flag bits were originally | 83 | | * set, and clear calculation leftovers in our non-flag bits | 84 | | */ | 85 | 30.9M | uint64_t is_ascii = ~octets & (0x80 * all_bytes); | 86 | | /* | 87 | | * To compare a heptet to `N`, we can add `0x7F - N` so that carry | 88 | | * propagation will set the flag when our heptet is greater than `N` | 89 | | */ | 90 | 30.9M | uint64_t is_gt_Z = heptets + (0x7F - 'Z') * all_bytes; | 91 | | /* | 92 | | * Add one for greater-than-or-equal comparison | 93 | | */ | 94 | 30.9M | uint64_t is_ge_A = heptets + (0x80 - 'A') * all_bytes; | 95 | | /* | 96 | | * Now we have what we need to identify the ascii uppercase bytes | 97 | | */ | 98 | 30.9M | uint64_t is_upper = (is_ge_A ^ is_gt_Z) & is_ascii; | 99 | | /* | 100 | | * Move the is_upper flag bits to bit 0x20 (which is 'a' - 'A') | 101 | | * and use them to adjust each byte as required | 102 | | */ | 103 | 30.9M | return octets | (is_upper >> 2); | 104 | 30.9M | } |
Unexecuted instantiation: ncache.c:isc_ascii_tolower8 Unexecuted instantiation: nsec3.c:isc_ascii_tolower8 Unexecuted instantiation: opensslecdsa_link.c:isc_ascii_tolower8 Unexecuted instantiation: openssleddsa_link.c:isc_ascii_tolower8 Unexecuted instantiation: opensslrsa_link.c:isc_ascii_tolower8 Unexecuted instantiation: qpcache.c:isc_ascii_tolower8 Unexecuted instantiation: rcode.c:isc_ascii_tolower8 Unexecuted instantiation: rdatalist.c:isc_ascii_tolower8 Unexecuted instantiation: rdatasetiter.c:isc_ascii_tolower8 Unexecuted instantiation: soa.c:isc_ascii_tolower8 Unexecuted instantiation: ssu.c:isc_ascii_tolower8 Unexecuted instantiation: ssu_external.c:isc_ascii_tolower8 Unexecuted instantiation: tsig.c:isc_ascii_tolower8 Unexecuted instantiation: view.c:isc_ascii_tolower8 Unexecuted instantiation: zone.c:isc_ascii_tolower8 Unexecuted instantiation: zoneverify.c:isc_ascii_tolower8 Unexecuted instantiation: zt.c:isc_ascii_tolower8 Unexecuted instantiation: xfrin.c:isc_ascii_tolower8 Unexecuted instantiation: adb.c:isc_ascii_tolower8 Unexecuted instantiation: badcache.c:isc_ascii_tolower8 Unexecuted instantiation: cache.c:isc_ascii_tolower8 Unexecuted instantiation: catz.c:isc_ascii_tolower8 Unexecuted instantiation: diff.c:isc_ascii_tolower8 Unexecuted instantiation: dispatch.c:isc_ascii_tolower8 Unexecuted instantiation: dns64.c:isc_ascii_tolower8 Unexecuted instantiation: dst_parse.c:isc_ascii_tolower8 Unexecuted instantiation: forward.c:isc_ascii_tolower8 Unexecuted instantiation: gssapictx.c:isc_ascii_tolower8 Unexecuted instantiation: ipkeylist.c:isc_ascii_tolower8 Unexecuted instantiation: journal.c:isc_ascii_tolower8 Unexecuted instantiation: keydata.c:isc_ascii_tolower8 Unexecuted instantiation: keymgr.c:isc_ascii_tolower8 Unexecuted instantiation: keytable.c:isc_ascii_tolower8 Unexecuted instantiation: masterdump.c:isc_ascii_tolower8 Unexecuted instantiation: nametree.c:isc_ascii_tolower8 Unexecuted instantiation: nsec.c:isc_ascii_tolower8 Unexecuted instantiation: nta.c:isc_ascii_tolower8 Unexecuted instantiation: openssl_link.c:isc_ascii_tolower8 Unexecuted instantiation: order.c:isc_ascii_tolower8 Unexecuted instantiation: peer.c:isc_ascii_tolower8 Unexecuted instantiation: private.c:isc_ascii_tolower8 Unexecuted instantiation: remote.c:isc_ascii_tolower8 Unexecuted instantiation: request.c:isc_ascii_tolower8 Unexecuted instantiation: resolver.c:isc_ascii_tolower8 Unexecuted instantiation: rootns.c:isc_ascii_tolower8 Unexecuted instantiation: rpz.c:isc_ascii_tolower8 Unexecuted instantiation: rriterator.c:isc_ascii_tolower8 Unexecuted instantiation: rrl.c:isc_ascii_tolower8 Unexecuted instantiation: skr.c:isc_ascii_tolower8 Unexecuted instantiation: transport.c:isc_ascii_tolower8 Unexecuted instantiation: unreachcache.c:isc_ascii_tolower8 Unexecuted instantiation: update.c:isc_ascii_tolower8 Unexecuted instantiation: validator.c:isc_ascii_tolower8 Unexecuted instantiation: ede.c:isc_ascii_tolower8 Unexecuted instantiation: netmgr.c:isc_ascii_tolower8 Unexecuted instantiation: proxystream.c:isc_ascii_tolower8 Unexecuted instantiation: proxyudp.c:isc_ascii_tolower8 Unexecuted instantiation: socket.c:isc_ascii_tolower8 Unexecuted instantiation: streamdns.c:isc_ascii_tolower8 Unexecuted instantiation: tcp.c:isc_ascii_tolower8 Unexecuted instantiation: timer.c:isc_ascii_tolower8 Unexecuted instantiation: tlsstream.c:isc_ascii_tolower8 Unexecuted instantiation: udp.c:isc_ascii_tolower8 Unexecuted instantiation: rwlock.c:isc_ascii_tolower8 Unexecuted instantiation: ascii.c:isc_ascii_tolower8 Unexecuted instantiation: hash.c:isc_ascii_tolower8 Unexecuted instantiation: hashmap.c:isc_ascii_tolower8 Unexecuted instantiation: ht.c:isc_ascii_tolower8 Unexecuted instantiation: mem.c:isc_ascii_tolower8 Unexecuted instantiation: netaddr.c:isc_ascii_tolower8 Unexecuted instantiation: proxy2.c:isc_ascii_tolower8 Unexecuted instantiation: sockaddr.c:isc_ascii_tolower8 Unexecuted instantiation: tls.c:isc_ascii_tolower8 Unexecuted instantiation: http.c:isc_ascii_tolower8 Unexecuted instantiation: dns_rdata_fromtext.c:isc_ascii_tolower8 Unexecuted instantiation: dns_qpkey_name.c:isc_ascii_tolower8 Unexecuted instantiation: dns_master_load.c:isc_ascii_tolower8 Unexecuted instantiation: dns_rdata_fromwire_text.c:isc_ascii_tolower8 Unexecuted instantiation: dns_name_fromwire.c:isc_ascii_tolower8 Unexecuted instantiation: old.c:isc_ascii_tolower8 Unexecuted instantiation: isc_lex_getmastertoken.c:isc_ascii_tolower8 Unexecuted instantiation: isc_lex_gettoken.c:isc_ascii_tolower8 Unexecuted instantiation: dns_message_checksig.c:isc_ascii_tolower8 Unexecuted instantiation: dns_name_fromtext_target.c:isc_ascii_tolower8 Unexecuted instantiation: dns_message_parse.c:isc_ascii_tolower8 |
105 | | |
106 | | /* |
107 | | * Same, but 4 bytes at a time, used by isc_halfsiphash24() |
108 | | */ |
109 | | static inline uint32_t |
110 | 550k | isc_ascii_tolower4(uint32_t octets) { |
111 | 550k | uint32_t all_bytes = 0x01010101; |
112 | 550k | uint32_t heptets = octets & (0x7F * all_bytes); |
113 | 550k | uint32_t is_ascii = ~octets & (0x80 * all_bytes); |
114 | 550k | uint32_t is_gt_Z = heptets + (0x7F - 'Z') * all_bytes; |
115 | 550k | uint32_t is_ge_A = heptets + (0x80 - 'A') * all_bytes; |
116 | 550k | uint32_t is_upper = (is_ge_A ^ is_gt_Z) & is_ascii; |
117 | 550k | return octets | (is_upper >> 2); |
118 | 550k | } Unexecuted instantiation: dns_qp.c:isc_ascii_tolower4 Unexecuted instantiation: main.c:isc_ascii_tolower4 Unexecuted instantiation: lib.c:isc_ascii_tolower4 Unexecuted instantiation: qp.c:isc_ascii_tolower4 Unexecuted instantiation: qpzone.c:isc_ascii_tolower4 Unexecuted instantiation: rdata.c:isc_ascii_tolower4 Unexecuted instantiation: rdataset.c:isc_ascii_tolower4 Unexecuted instantiation: rdataslab.c:isc_ascii_tolower4 Unexecuted instantiation: ttl.c:isc_ascii_tolower4 Unexecuted instantiation: compress.c:isc_ascii_tolower4 Unexecuted instantiation: db.c:isc_ascii_tolower4 Unexecuted instantiation: dlz.c:isc_ascii_tolower4 Unexecuted instantiation: dnssec.c:isc_ascii_tolower4 Unexecuted instantiation: ds.c:isc_ascii_tolower4 Unexecuted instantiation: dst_api.c:isc_ascii_tolower4 Unexecuted instantiation: dyndb.c:isc_ascii_tolower4 Unexecuted instantiation: hmac_link.c:isc_ascii_tolower4 Unexecuted instantiation: kasp.c:isc_ascii_tolower4 Unexecuted instantiation: key.c:isc_ascii_tolower4 Unexecuted instantiation: keystore.c:isc_ascii_tolower4 Unexecuted instantiation: master.c:isc_ascii_tolower4 Unexecuted instantiation: message.c:isc_ascii_tolower4 Unexecuted instantiation: name.c:isc_ascii_tolower4 Unexecuted instantiation: ncache.c:isc_ascii_tolower4 Unexecuted instantiation: nsec3.c:isc_ascii_tolower4 Unexecuted instantiation: opensslecdsa_link.c:isc_ascii_tolower4 Unexecuted instantiation: openssleddsa_link.c:isc_ascii_tolower4 Unexecuted instantiation: opensslrsa_link.c:isc_ascii_tolower4 Unexecuted instantiation: qpcache.c:isc_ascii_tolower4 Unexecuted instantiation: rcode.c:isc_ascii_tolower4 Unexecuted instantiation: rdatalist.c:isc_ascii_tolower4 Unexecuted instantiation: rdatasetiter.c:isc_ascii_tolower4 Unexecuted instantiation: soa.c:isc_ascii_tolower4 Unexecuted instantiation: ssu.c:isc_ascii_tolower4 Unexecuted instantiation: ssu_external.c:isc_ascii_tolower4 Unexecuted instantiation: tsig.c:isc_ascii_tolower4 Unexecuted instantiation: view.c:isc_ascii_tolower4 Unexecuted instantiation: zone.c:isc_ascii_tolower4 Unexecuted instantiation: zoneverify.c:isc_ascii_tolower4 Unexecuted instantiation: zt.c:isc_ascii_tolower4 Unexecuted instantiation: xfrin.c:isc_ascii_tolower4 Unexecuted instantiation: adb.c:isc_ascii_tolower4 Unexecuted instantiation: badcache.c:isc_ascii_tolower4 Unexecuted instantiation: cache.c:isc_ascii_tolower4 Unexecuted instantiation: catz.c:isc_ascii_tolower4 Unexecuted instantiation: diff.c:isc_ascii_tolower4 Unexecuted instantiation: dispatch.c:isc_ascii_tolower4 Unexecuted instantiation: dns64.c:isc_ascii_tolower4 Unexecuted instantiation: dst_parse.c:isc_ascii_tolower4 Unexecuted instantiation: forward.c:isc_ascii_tolower4 Unexecuted instantiation: gssapictx.c:isc_ascii_tolower4 Unexecuted instantiation: ipkeylist.c:isc_ascii_tolower4 Unexecuted instantiation: journal.c:isc_ascii_tolower4 Unexecuted instantiation: keydata.c:isc_ascii_tolower4 Unexecuted instantiation: keymgr.c:isc_ascii_tolower4 Unexecuted instantiation: keytable.c:isc_ascii_tolower4 Unexecuted instantiation: masterdump.c:isc_ascii_tolower4 Unexecuted instantiation: nametree.c:isc_ascii_tolower4 Unexecuted instantiation: nsec.c:isc_ascii_tolower4 Unexecuted instantiation: nta.c:isc_ascii_tolower4 Unexecuted instantiation: openssl_link.c:isc_ascii_tolower4 Unexecuted instantiation: order.c:isc_ascii_tolower4 Unexecuted instantiation: peer.c:isc_ascii_tolower4 Unexecuted instantiation: private.c:isc_ascii_tolower4 Unexecuted instantiation: remote.c:isc_ascii_tolower4 Unexecuted instantiation: request.c:isc_ascii_tolower4 Unexecuted instantiation: resolver.c:isc_ascii_tolower4 Unexecuted instantiation: rootns.c:isc_ascii_tolower4 Unexecuted instantiation: rpz.c:isc_ascii_tolower4 Unexecuted instantiation: rriterator.c:isc_ascii_tolower4 Unexecuted instantiation: rrl.c:isc_ascii_tolower4 Unexecuted instantiation: skr.c:isc_ascii_tolower4 Unexecuted instantiation: transport.c:isc_ascii_tolower4 Unexecuted instantiation: unreachcache.c:isc_ascii_tolower4 Unexecuted instantiation: update.c:isc_ascii_tolower4 Unexecuted instantiation: validator.c:isc_ascii_tolower4 Unexecuted instantiation: ede.c:isc_ascii_tolower4 Unexecuted instantiation: netmgr.c:isc_ascii_tolower4 Unexecuted instantiation: proxystream.c:isc_ascii_tolower4 Unexecuted instantiation: proxyudp.c:isc_ascii_tolower4 Unexecuted instantiation: socket.c:isc_ascii_tolower4 Unexecuted instantiation: streamdns.c:isc_ascii_tolower4 Unexecuted instantiation: tcp.c:isc_ascii_tolower4 Unexecuted instantiation: timer.c:isc_ascii_tolower4 Unexecuted instantiation: tlsstream.c:isc_ascii_tolower4 Unexecuted instantiation: udp.c:isc_ascii_tolower4 Unexecuted instantiation: rwlock.c:isc_ascii_tolower4 Unexecuted instantiation: ascii.c:isc_ascii_tolower4 hash.c:isc_ascii_tolower4 Line | Count | Source | 110 | 550k | isc_ascii_tolower4(uint32_t octets) { | 111 | 550k | uint32_t all_bytes = 0x01010101; | 112 | 550k | uint32_t heptets = octets & (0x7F * all_bytes); | 113 | 550k | uint32_t is_ascii = ~octets & (0x80 * all_bytes); | 114 | 550k | uint32_t is_gt_Z = heptets + (0x7F - 'Z') * all_bytes; | 115 | 550k | uint32_t is_ge_A = heptets + (0x80 - 'A') * all_bytes; | 116 | 550k | uint32_t is_upper = (is_ge_A ^ is_gt_Z) & is_ascii; | 117 | 550k | return octets | (is_upper >> 2); | 118 | 550k | } |
Unexecuted instantiation: hashmap.c:isc_ascii_tolower4 Unexecuted instantiation: ht.c:isc_ascii_tolower4 Unexecuted instantiation: mem.c:isc_ascii_tolower4 Unexecuted instantiation: netaddr.c:isc_ascii_tolower4 Unexecuted instantiation: proxy2.c:isc_ascii_tolower4 Unexecuted instantiation: sockaddr.c:isc_ascii_tolower4 Unexecuted instantiation: tls.c:isc_ascii_tolower4 Unexecuted instantiation: http.c:isc_ascii_tolower4 Unexecuted instantiation: dns_rdata_fromtext.c:isc_ascii_tolower4 Unexecuted instantiation: dns_qpkey_name.c:isc_ascii_tolower4 Unexecuted instantiation: dns_master_load.c:isc_ascii_tolower4 Unexecuted instantiation: dns_rdata_fromwire_text.c:isc_ascii_tolower4 Unexecuted instantiation: dns_name_fromwire.c:isc_ascii_tolower4 Unexecuted instantiation: old.c:isc_ascii_tolower4 Unexecuted instantiation: isc_lex_getmastertoken.c:isc_ascii_tolower4 Unexecuted instantiation: isc_lex_gettoken.c:isc_ascii_tolower4 Unexecuted instantiation: dns_message_checksig.c:isc_ascii_tolower4 Unexecuted instantiation: dns_name_fromtext_target.c:isc_ascii_tolower4 Unexecuted instantiation: dns_message_parse.c:isc_ascii_tolower4 |
119 | | |
120 | | /* |
121 | | * Helper function to do an unaligned load of 8 bytes in host byte order |
122 | | */ |
123 | | static inline uint64_t |
124 | 31.6M | isc__ascii_load8(const uint8_t *ptr) { |
125 | 31.6M | uint64_t bytes = 0; |
126 | 31.6M | memmove(&bytes, ptr, sizeof(bytes)); |
127 | 31.6M | return bytes; |
128 | 31.6M | } Unexecuted instantiation: dns_qp.c:isc__ascii_load8 Unexecuted instantiation: main.c:isc__ascii_load8 Unexecuted instantiation: lib.c:isc__ascii_load8 Unexecuted instantiation: qp.c:isc__ascii_load8 Unexecuted instantiation: qpzone.c:isc__ascii_load8 Unexecuted instantiation: rdata.c:isc__ascii_load8 Unexecuted instantiation: rdataset.c:isc__ascii_load8 Unexecuted instantiation: rdataslab.c:isc__ascii_load8 Unexecuted instantiation: ttl.c:isc__ascii_load8 compress.c:isc__ascii_load8 Line | Count | Source | 124 | 701k | isc__ascii_load8(const uint8_t *ptr) { | 125 | 701k | uint64_t bytes = 0; | 126 | 701k | memmove(&bytes, ptr, sizeof(bytes)); | 127 | 701k | return bytes; | 128 | 701k | } |
Unexecuted instantiation: db.c:isc__ascii_load8 Unexecuted instantiation: dlz.c:isc__ascii_load8 Unexecuted instantiation: dnssec.c:isc__ascii_load8 Unexecuted instantiation: ds.c:isc__ascii_load8 Unexecuted instantiation: dst_api.c:isc__ascii_load8 Unexecuted instantiation: dyndb.c:isc__ascii_load8 Unexecuted instantiation: hmac_link.c:isc__ascii_load8 Unexecuted instantiation: kasp.c:isc__ascii_load8 Unexecuted instantiation: key.c:isc__ascii_load8 Unexecuted instantiation: keystore.c:isc__ascii_load8 Unexecuted instantiation: master.c:isc__ascii_load8 Unexecuted instantiation: message.c:isc__ascii_load8 Line | Count | Source | 124 | 30.9M | isc__ascii_load8(const uint8_t *ptr) { | 125 | 30.9M | uint64_t bytes = 0; | 126 | 30.9M | memmove(&bytes, ptr, sizeof(bytes)); | 127 | 30.9M | return bytes; | 128 | 30.9M | } |
Unexecuted instantiation: ncache.c:isc__ascii_load8 Unexecuted instantiation: nsec3.c:isc__ascii_load8 Unexecuted instantiation: opensslecdsa_link.c:isc__ascii_load8 Unexecuted instantiation: openssleddsa_link.c:isc__ascii_load8 Unexecuted instantiation: opensslrsa_link.c:isc__ascii_load8 Unexecuted instantiation: qpcache.c:isc__ascii_load8 Unexecuted instantiation: rcode.c:isc__ascii_load8 Unexecuted instantiation: rdatalist.c:isc__ascii_load8 Unexecuted instantiation: rdatasetiter.c:isc__ascii_load8 Unexecuted instantiation: soa.c:isc__ascii_load8 Unexecuted instantiation: ssu.c:isc__ascii_load8 Unexecuted instantiation: ssu_external.c:isc__ascii_load8 Unexecuted instantiation: tsig.c:isc__ascii_load8 Unexecuted instantiation: view.c:isc__ascii_load8 Unexecuted instantiation: zone.c:isc__ascii_load8 Unexecuted instantiation: zoneverify.c:isc__ascii_load8 Unexecuted instantiation: zt.c:isc__ascii_load8 Unexecuted instantiation: xfrin.c:isc__ascii_load8 Unexecuted instantiation: adb.c:isc__ascii_load8 Unexecuted instantiation: badcache.c:isc__ascii_load8 Unexecuted instantiation: cache.c:isc__ascii_load8 Unexecuted instantiation: catz.c:isc__ascii_load8 Unexecuted instantiation: diff.c:isc__ascii_load8 Unexecuted instantiation: dispatch.c:isc__ascii_load8 Unexecuted instantiation: dns64.c:isc__ascii_load8 Unexecuted instantiation: dst_parse.c:isc__ascii_load8 Unexecuted instantiation: forward.c:isc__ascii_load8 Unexecuted instantiation: gssapictx.c:isc__ascii_load8 Unexecuted instantiation: ipkeylist.c:isc__ascii_load8 Unexecuted instantiation: journal.c:isc__ascii_load8 Unexecuted instantiation: keydata.c:isc__ascii_load8 Unexecuted instantiation: keymgr.c:isc__ascii_load8 Unexecuted instantiation: keytable.c:isc__ascii_load8 Unexecuted instantiation: masterdump.c:isc__ascii_load8 Unexecuted instantiation: nametree.c:isc__ascii_load8 Unexecuted instantiation: nsec.c:isc__ascii_load8 Unexecuted instantiation: nta.c:isc__ascii_load8 Unexecuted instantiation: openssl_link.c:isc__ascii_load8 Unexecuted instantiation: order.c:isc__ascii_load8 Unexecuted instantiation: peer.c:isc__ascii_load8 Unexecuted instantiation: private.c:isc__ascii_load8 Unexecuted instantiation: remote.c:isc__ascii_load8 Unexecuted instantiation: request.c:isc__ascii_load8 Unexecuted instantiation: resolver.c:isc__ascii_load8 Unexecuted instantiation: rootns.c:isc__ascii_load8 Unexecuted instantiation: rpz.c:isc__ascii_load8 Unexecuted instantiation: rriterator.c:isc__ascii_load8 Unexecuted instantiation: rrl.c:isc__ascii_load8 Unexecuted instantiation: skr.c:isc__ascii_load8 Unexecuted instantiation: transport.c:isc__ascii_load8 Unexecuted instantiation: unreachcache.c:isc__ascii_load8 Unexecuted instantiation: update.c:isc__ascii_load8 Unexecuted instantiation: validator.c:isc__ascii_load8 Unexecuted instantiation: ede.c:isc__ascii_load8 Unexecuted instantiation: netmgr.c:isc__ascii_load8 Unexecuted instantiation: proxystream.c:isc__ascii_load8 Unexecuted instantiation: proxyudp.c:isc__ascii_load8 Unexecuted instantiation: socket.c:isc__ascii_load8 Unexecuted instantiation: streamdns.c:isc__ascii_load8 Unexecuted instantiation: tcp.c:isc__ascii_load8 Unexecuted instantiation: timer.c:isc__ascii_load8 Unexecuted instantiation: tlsstream.c:isc__ascii_load8 Unexecuted instantiation: udp.c:isc__ascii_load8 Unexecuted instantiation: rwlock.c:isc__ascii_load8 Unexecuted instantiation: ascii.c:isc__ascii_load8 Unexecuted instantiation: hash.c:isc__ascii_load8 Unexecuted instantiation: hashmap.c:isc__ascii_load8 Unexecuted instantiation: ht.c:isc__ascii_load8 Unexecuted instantiation: mem.c:isc__ascii_load8 Unexecuted instantiation: netaddr.c:isc__ascii_load8 Unexecuted instantiation: proxy2.c:isc__ascii_load8 Unexecuted instantiation: sockaddr.c:isc__ascii_load8 Unexecuted instantiation: tls.c:isc__ascii_load8 Unexecuted instantiation: http.c:isc__ascii_load8 Unexecuted instantiation: dns_rdata_fromtext.c:isc__ascii_load8 Unexecuted instantiation: dns_qpkey_name.c:isc__ascii_load8 Unexecuted instantiation: dns_master_load.c:isc__ascii_load8 Unexecuted instantiation: dns_rdata_fromwire_text.c:isc__ascii_load8 Unexecuted instantiation: dns_name_fromwire.c:isc__ascii_load8 Unexecuted instantiation: old.c:isc__ascii_load8 Unexecuted instantiation: isc_lex_getmastertoken.c:isc__ascii_load8 Unexecuted instantiation: isc_lex_gettoken.c:isc__ascii_load8 Unexecuted instantiation: dns_message_checksig.c:isc__ascii_load8 Unexecuted instantiation: dns_name_fromtext_target.c:isc__ascii_load8 Unexecuted instantiation: dns_message_parse.c:isc__ascii_load8 |
129 | | |
130 | | /* |
131 | | * Compare `len` bytes at `a` and `b` for case-insensitive equality |
132 | | */ |
133 | | static inline bool |
134 | | isc_ascii_lowerequal(const uint8_t *restrict a, const uint8_t *restrict b, |
135 | 460k | unsigned int len) { |
136 | 460k | uint64_t a8 = 0, b8 = 0; |
137 | 460k | if (len >= 8) { |
138 | 102k | const uint8_t *a_tail = a + len - 8; |
139 | 102k | const uint8_t *b_tail = b + len - 8; |
140 | 531k | while (len >= 8) { |
141 | 446k | a8 = isc_ascii_tolower8(isc__ascii_load8(a)); |
142 | 446k | b8 = isc_ascii_tolower8(isc__ascii_load8(b)); |
143 | 446k | if (a8 != b8) { |
144 | 17.4k | return false; |
145 | 17.4k | } |
146 | 429k | len -= 8; |
147 | 429k | a += 8; |
148 | 429k | b += 8; |
149 | 429k | } |
150 | | |
151 | 84.5k | a8 = isc_ascii_tolower8(isc__ascii_load8(a_tail)); |
152 | 84.5k | b8 = isc_ascii_tolower8(isc__ascii_load8(b_tail)); |
153 | 84.5k | return a8 == b8; |
154 | 102k | } |
155 | | |
156 | 1.08M | while (len-- > 0) { |
157 | 729k | if (isc_ascii_tolower(*a++) != isc_ascii_tolower(*b++)) { |
158 | 4.92k | return false; |
159 | 4.92k | } |
160 | 729k | } |
161 | 353k | return true; |
162 | 358k | } Unexecuted instantiation: dns_qp.c:isc_ascii_lowerequal Unexecuted instantiation: main.c:isc_ascii_lowerequal Unexecuted instantiation: lib.c:isc_ascii_lowerequal Unexecuted instantiation: qp.c:isc_ascii_lowerequal Unexecuted instantiation: qpzone.c:isc_ascii_lowerequal Unexecuted instantiation: rdata.c:isc_ascii_lowerequal Unexecuted instantiation: rdataset.c:isc_ascii_lowerequal Unexecuted instantiation: rdataslab.c:isc_ascii_lowerequal Unexecuted instantiation: ttl.c:isc_ascii_lowerequal compress.c:isc_ascii_lowerequal Line | Count | Source | 135 | 220k | unsigned int len) { | 136 | 220k | uint64_t a8 = 0, b8 = 0; | 137 | 220k | if (len >= 8) { | 138 | 75.5k | const uint8_t *a_tail = a + len - 8; | 139 | 75.5k | const uint8_t *b_tail = b + len - 8; | 140 | 350k | while (len >= 8) { | 141 | 290k | a8 = isc_ascii_tolower8(isc__ascii_load8(a)); | 142 | 290k | b8 = isc_ascii_tolower8(isc__ascii_load8(b)); | 143 | 290k | if (a8 != b8) { | 144 | 15.2k | return false; | 145 | 15.2k | } | 146 | 275k | len -= 8; | 147 | 275k | a += 8; | 148 | 275k | b += 8; | 149 | 275k | } | 150 | | | 151 | 60.2k | a8 = isc_ascii_tolower8(isc__ascii_load8(a_tail)); | 152 | 60.2k | b8 = isc_ascii_tolower8(isc__ascii_load8(b_tail)); | 153 | 60.2k | return a8 == b8; | 154 | 75.5k | } | 155 | | | 156 | 573k | while (len-- > 0) { | 157 | 431k | if (isc_ascii_tolower(*a++) != isc_ascii_tolower(*b++)) { | 158 | 3.94k | return false; | 159 | 3.94k | } | 160 | 431k | } | 161 | 141k | return true; | 162 | 145k | } |
Unexecuted instantiation: db.c:isc_ascii_lowerequal Unexecuted instantiation: dlz.c:isc_ascii_lowerequal Unexecuted instantiation: dnssec.c:isc_ascii_lowerequal Unexecuted instantiation: ds.c:isc_ascii_lowerequal Unexecuted instantiation: dst_api.c:isc_ascii_lowerequal Unexecuted instantiation: dyndb.c:isc_ascii_lowerequal Unexecuted instantiation: hmac_link.c:isc_ascii_lowerequal Unexecuted instantiation: kasp.c:isc_ascii_lowerequal Unexecuted instantiation: key.c:isc_ascii_lowerequal Unexecuted instantiation: keystore.c:isc_ascii_lowerequal Unexecuted instantiation: master.c:isc_ascii_lowerequal Unexecuted instantiation: message.c:isc_ascii_lowerequal name.c:isc_ascii_lowerequal Line | Count | Source | 135 | 240k | unsigned int len) { | 136 | 240k | uint64_t a8 = 0, b8 = 0; | 137 | 240k | if (len >= 8) { | 138 | 26.5k | const uint8_t *a_tail = a + len - 8; | 139 | 26.5k | const uint8_t *b_tail = b + len - 8; | 140 | 180k | while (len >= 8) { | 141 | 156k | a8 = isc_ascii_tolower8(isc__ascii_load8(a)); | 142 | 156k | b8 = isc_ascii_tolower8(isc__ascii_load8(b)); | 143 | 156k | if (a8 != b8) { | 144 | 2.16k | return false; | 145 | 2.16k | } | 146 | 154k | len -= 8; | 147 | 154k | a += 8; | 148 | 154k | b += 8; | 149 | 154k | } | 150 | | | 151 | 24.3k | a8 = isc_ascii_tolower8(isc__ascii_load8(a_tail)); | 152 | 24.3k | b8 = isc_ascii_tolower8(isc__ascii_load8(b_tail)); | 153 | 24.3k | return a8 == b8; | 154 | 26.5k | } | 155 | | | 156 | 510k | while (len-- > 0) { | 157 | 297k | if (isc_ascii_tolower(*a++) != isc_ascii_tolower(*b++)) { | 158 | 984 | return false; | 159 | 984 | } | 160 | 297k | } | 161 | 212k | return true; | 162 | 213k | } |
Unexecuted instantiation: ncache.c:isc_ascii_lowerequal Unexecuted instantiation: nsec3.c:isc_ascii_lowerequal Unexecuted instantiation: opensslecdsa_link.c:isc_ascii_lowerequal Unexecuted instantiation: openssleddsa_link.c:isc_ascii_lowerequal Unexecuted instantiation: opensslrsa_link.c:isc_ascii_lowerequal Unexecuted instantiation: qpcache.c:isc_ascii_lowerequal Unexecuted instantiation: rcode.c:isc_ascii_lowerequal Unexecuted instantiation: rdatalist.c:isc_ascii_lowerequal Unexecuted instantiation: rdatasetiter.c:isc_ascii_lowerequal Unexecuted instantiation: soa.c:isc_ascii_lowerequal Unexecuted instantiation: ssu.c:isc_ascii_lowerequal Unexecuted instantiation: ssu_external.c:isc_ascii_lowerequal Unexecuted instantiation: tsig.c:isc_ascii_lowerequal Unexecuted instantiation: view.c:isc_ascii_lowerequal Unexecuted instantiation: zone.c:isc_ascii_lowerequal Unexecuted instantiation: zoneverify.c:isc_ascii_lowerequal Unexecuted instantiation: zt.c:isc_ascii_lowerequal Unexecuted instantiation: xfrin.c:isc_ascii_lowerequal Unexecuted instantiation: adb.c:isc_ascii_lowerequal Unexecuted instantiation: badcache.c:isc_ascii_lowerequal Unexecuted instantiation: cache.c:isc_ascii_lowerequal Unexecuted instantiation: catz.c:isc_ascii_lowerequal Unexecuted instantiation: diff.c:isc_ascii_lowerequal Unexecuted instantiation: dispatch.c:isc_ascii_lowerequal Unexecuted instantiation: dns64.c:isc_ascii_lowerequal Unexecuted instantiation: dst_parse.c:isc_ascii_lowerequal Unexecuted instantiation: forward.c:isc_ascii_lowerequal Unexecuted instantiation: gssapictx.c:isc_ascii_lowerequal Unexecuted instantiation: ipkeylist.c:isc_ascii_lowerequal Unexecuted instantiation: journal.c:isc_ascii_lowerequal Unexecuted instantiation: keydata.c:isc_ascii_lowerequal Unexecuted instantiation: keymgr.c:isc_ascii_lowerequal Unexecuted instantiation: keytable.c:isc_ascii_lowerequal Unexecuted instantiation: masterdump.c:isc_ascii_lowerequal Unexecuted instantiation: nametree.c:isc_ascii_lowerequal Unexecuted instantiation: nsec.c:isc_ascii_lowerequal Unexecuted instantiation: nta.c:isc_ascii_lowerequal Unexecuted instantiation: openssl_link.c:isc_ascii_lowerequal Unexecuted instantiation: order.c:isc_ascii_lowerequal Unexecuted instantiation: peer.c:isc_ascii_lowerequal Unexecuted instantiation: private.c:isc_ascii_lowerequal Unexecuted instantiation: remote.c:isc_ascii_lowerequal Unexecuted instantiation: request.c:isc_ascii_lowerequal Unexecuted instantiation: resolver.c:isc_ascii_lowerequal Unexecuted instantiation: rootns.c:isc_ascii_lowerequal Unexecuted instantiation: rpz.c:isc_ascii_lowerequal Unexecuted instantiation: rriterator.c:isc_ascii_lowerequal Unexecuted instantiation: rrl.c:isc_ascii_lowerequal Unexecuted instantiation: skr.c:isc_ascii_lowerequal Unexecuted instantiation: transport.c:isc_ascii_lowerequal Unexecuted instantiation: unreachcache.c:isc_ascii_lowerequal Unexecuted instantiation: update.c:isc_ascii_lowerequal Unexecuted instantiation: validator.c:isc_ascii_lowerequal Unexecuted instantiation: ede.c:isc_ascii_lowerequal Unexecuted instantiation: netmgr.c:isc_ascii_lowerequal Unexecuted instantiation: proxystream.c:isc_ascii_lowerequal Unexecuted instantiation: proxyudp.c:isc_ascii_lowerequal Unexecuted instantiation: socket.c:isc_ascii_lowerequal Unexecuted instantiation: streamdns.c:isc_ascii_lowerequal Unexecuted instantiation: tcp.c:isc_ascii_lowerequal Unexecuted instantiation: timer.c:isc_ascii_lowerequal Unexecuted instantiation: tlsstream.c:isc_ascii_lowerequal Unexecuted instantiation: udp.c:isc_ascii_lowerequal Unexecuted instantiation: rwlock.c:isc_ascii_lowerequal Unexecuted instantiation: ascii.c:isc_ascii_lowerequal Unexecuted instantiation: hash.c:isc_ascii_lowerequal Unexecuted instantiation: hashmap.c:isc_ascii_lowerequal Unexecuted instantiation: ht.c:isc_ascii_lowerequal Unexecuted instantiation: mem.c:isc_ascii_lowerequal Unexecuted instantiation: netaddr.c:isc_ascii_lowerequal Unexecuted instantiation: proxy2.c:isc_ascii_lowerequal Unexecuted instantiation: sockaddr.c:isc_ascii_lowerequal Unexecuted instantiation: tls.c:isc_ascii_lowerequal Unexecuted instantiation: http.c:isc_ascii_lowerequal Unexecuted instantiation: dns_rdata_fromtext.c:isc_ascii_lowerequal Unexecuted instantiation: dns_qpkey_name.c:isc_ascii_lowerequal Unexecuted instantiation: dns_master_load.c:isc_ascii_lowerequal Unexecuted instantiation: dns_rdata_fromwire_text.c:isc_ascii_lowerequal Unexecuted instantiation: dns_name_fromwire.c:isc_ascii_lowerequal Unexecuted instantiation: old.c:isc_ascii_lowerequal Unexecuted instantiation: isc_lex_getmastertoken.c:isc_ascii_lowerequal Unexecuted instantiation: isc_lex_gettoken.c:isc_ascii_lowerequal Unexecuted instantiation: dns_message_checksig.c:isc_ascii_lowerequal Unexecuted instantiation: dns_name_fromtext_target.c:isc_ascii_lowerequal Unexecuted instantiation: dns_message_parse.c:isc_ascii_lowerequal |
163 | | |
164 | | /* |
165 | | * Compare `len` bytes at `a` and `b` for case-insensitive order. |
166 | | * Unlike the previous functions (which do not need to care about byte |
167 | | * order) here we need to ensure the comparisons are lexicographic, |
168 | | * i.e. they treat the strings as big-endian numbers. |
169 | | */ |
170 | | static inline int |
171 | 52.1M | isc_ascii_lowercmp(const uint8_t *a, const uint8_t *b, unsigned int len) { |
172 | 52.1M | uint64_t a8 = 0, b8 = 0; |
173 | 53.6M | while (len >= 8) { |
174 | 15.3M | a8 = isc_ascii_tolower8(htobe64(isc__ascii_load8(a))); |
175 | 15.3M | b8 = isc_ascii_tolower8(htobe64(isc__ascii_load8(b))); |
176 | 15.3M | if (a8 != b8) { |
177 | 13.8M | goto ret; |
178 | 13.8M | } |
179 | 1.45M | len -= 8; |
180 | 1.45M | a += 8; |
181 | 1.45M | b += 8; |
182 | 1.45M | } |
183 | 60.9M | while (len-- > 0) { |
184 | 51.3M | a8 = isc_ascii_tolower(*a++); |
185 | 51.3M | b8 = isc_ascii_tolower(*b++); |
186 | 51.3M | if (a8 != b8) { |
187 | 28.6M | goto ret; |
188 | 28.6M | } |
189 | 51.3M | } |
190 | 52.1M | ret: |
191 | 52.1M | if (a8 < b8) { |
192 | 41.1M | return -1; |
193 | 41.1M | } |
194 | 10.9M | if (a8 > b8) { |
195 | 1.36M | return +1; |
196 | 1.36M | } |
197 | 9.61M | return 0; |
198 | 10.9M | } Unexecuted instantiation: dns_qp.c:isc_ascii_lowercmp Unexecuted instantiation: main.c:isc_ascii_lowercmp Unexecuted instantiation: lib.c:isc_ascii_lowercmp Unexecuted instantiation: qp.c:isc_ascii_lowercmp Unexecuted instantiation: qpzone.c:isc_ascii_lowercmp Unexecuted instantiation: rdata.c:isc_ascii_lowercmp Unexecuted instantiation: rdataset.c:isc_ascii_lowercmp Unexecuted instantiation: rdataslab.c:isc_ascii_lowercmp Unexecuted instantiation: ttl.c:isc_ascii_lowercmp Unexecuted instantiation: compress.c:isc_ascii_lowercmp Unexecuted instantiation: db.c:isc_ascii_lowercmp Unexecuted instantiation: dlz.c:isc_ascii_lowercmp Unexecuted instantiation: dnssec.c:isc_ascii_lowercmp Unexecuted instantiation: ds.c:isc_ascii_lowercmp Unexecuted instantiation: dst_api.c:isc_ascii_lowercmp Unexecuted instantiation: dyndb.c:isc_ascii_lowercmp Unexecuted instantiation: hmac_link.c:isc_ascii_lowercmp Unexecuted instantiation: kasp.c:isc_ascii_lowercmp Unexecuted instantiation: key.c:isc_ascii_lowercmp Unexecuted instantiation: keystore.c:isc_ascii_lowercmp Unexecuted instantiation: master.c:isc_ascii_lowercmp Unexecuted instantiation: message.c:isc_ascii_lowercmp name.c:isc_ascii_lowercmp Line | Count | Source | 171 | 52.1M | isc_ascii_lowercmp(const uint8_t *a, const uint8_t *b, unsigned int len) { | 172 | 52.1M | uint64_t a8 = 0, b8 = 0; | 173 | 53.6M | while (len >= 8) { | 174 | 15.3M | a8 = isc_ascii_tolower8(htobe64(isc__ascii_load8(a))); | 175 | 15.3M | b8 = isc_ascii_tolower8(htobe64(isc__ascii_load8(b))); | 176 | 15.3M | if (a8 != b8) { | 177 | 13.8M | goto ret; | 178 | 13.8M | } | 179 | 1.45M | len -= 8; | 180 | 1.45M | a += 8; | 181 | 1.45M | b += 8; | 182 | 1.45M | } | 183 | 60.9M | while (len-- > 0) { | 184 | 51.3M | a8 = isc_ascii_tolower(*a++); | 185 | 51.3M | b8 = isc_ascii_tolower(*b++); | 186 | 51.3M | if (a8 != b8) { | 187 | 28.6M | goto ret; | 188 | 28.6M | } | 189 | 51.3M | } | 190 | 52.1M | ret: | 191 | 52.1M | if (a8 < b8) { | 192 | 41.1M | return -1; | 193 | 41.1M | } | 194 | 10.9M | if (a8 > b8) { | 195 | 1.36M | return +1; | 196 | 1.36M | } | 197 | 9.61M | return 0; | 198 | 10.9M | } |
Unexecuted instantiation: ncache.c:isc_ascii_lowercmp Unexecuted instantiation: nsec3.c:isc_ascii_lowercmp Unexecuted instantiation: opensslecdsa_link.c:isc_ascii_lowercmp Unexecuted instantiation: openssleddsa_link.c:isc_ascii_lowercmp Unexecuted instantiation: opensslrsa_link.c:isc_ascii_lowercmp Unexecuted instantiation: qpcache.c:isc_ascii_lowercmp Unexecuted instantiation: rcode.c:isc_ascii_lowercmp Unexecuted instantiation: rdatalist.c:isc_ascii_lowercmp Unexecuted instantiation: rdatasetiter.c:isc_ascii_lowercmp Unexecuted instantiation: soa.c:isc_ascii_lowercmp Unexecuted instantiation: ssu.c:isc_ascii_lowercmp Unexecuted instantiation: ssu_external.c:isc_ascii_lowercmp Unexecuted instantiation: tsig.c:isc_ascii_lowercmp Unexecuted instantiation: view.c:isc_ascii_lowercmp Unexecuted instantiation: zone.c:isc_ascii_lowercmp Unexecuted instantiation: zoneverify.c:isc_ascii_lowercmp Unexecuted instantiation: zt.c:isc_ascii_lowercmp Unexecuted instantiation: xfrin.c:isc_ascii_lowercmp Unexecuted instantiation: adb.c:isc_ascii_lowercmp Unexecuted instantiation: badcache.c:isc_ascii_lowercmp Unexecuted instantiation: cache.c:isc_ascii_lowercmp Unexecuted instantiation: catz.c:isc_ascii_lowercmp Unexecuted instantiation: diff.c:isc_ascii_lowercmp Unexecuted instantiation: dispatch.c:isc_ascii_lowercmp Unexecuted instantiation: dns64.c:isc_ascii_lowercmp Unexecuted instantiation: dst_parse.c:isc_ascii_lowercmp Unexecuted instantiation: forward.c:isc_ascii_lowercmp Unexecuted instantiation: gssapictx.c:isc_ascii_lowercmp Unexecuted instantiation: ipkeylist.c:isc_ascii_lowercmp Unexecuted instantiation: journal.c:isc_ascii_lowercmp Unexecuted instantiation: keydata.c:isc_ascii_lowercmp Unexecuted instantiation: keymgr.c:isc_ascii_lowercmp Unexecuted instantiation: keytable.c:isc_ascii_lowercmp Unexecuted instantiation: masterdump.c:isc_ascii_lowercmp Unexecuted instantiation: nametree.c:isc_ascii_lowercmp Unexecuted instantiation: nsec.c:isc_ascii_lowercmp Unexecuted instantiation: nta.c:isc_ascii_lowercmp Unexecuted instantiation: openssl_link.c:isc_ascii_lowercmp Unexecuted instantiation: order.c:isc_ascii_lowercmp Unexecuted instantiation: peer.c:isc_ascii_lowercmp Unexecuted instantiation: private.c:isc_ascii_lowercmp Unexecuted instantiation: remote.c:isc_ascii_lowercmp Unexecuted instantiation: request.c:isc_ascii_lowercmp Unexecuted instantiation: resolver.c:isc_ascii_lowercmp Unexecuted instantiation: rootns.c:isc_ascii_lowercmp Unexecuted instantiation: rpz.c:isc_ascii_lowercmp Unexecuted instantiation: rriterator.c:isc_ascii_lowercmp Unexecuted instantiation: rrl.c:isc_ascii_lowercmp Unexecuted instantiation: skr.c:isc_ascii_lowercmp Unexecuted instantiation: transport.c:isc_ascii_lowercmp Unexecuted instantiation: unreachcache.c:isc_ascii_lowercmp Unexecuted instantiation: update.c:isc_ascii_lowercmp Unexecuted instantiation: validator.c:isc_ascii_lowercmp Unexecuted instantiation: ede.c:isc_ascii_lowercmp Unexecuted instantiation: netmgr.c:isc_ascii_lowercmp Unexecuted instantiation: proxystream.c:isc_ascii_lowercmp Unexecuted instantiation: proxyudp.c:isc_ascii_lowercmp Unexecuted instantiation: socket.c:isc_ascii_lowercmp Unexecuted instantiation: streamdns.c:isc_ascii_lowercmp Unexecuted instantiation: tcp.c:isc_ascii_lowercmp Unexecuted instantiation: timer.c:isc_ascii_lowercmp Unexecuted instantiation: tlsstream.c:isc_ascii_lowercmp Unexecuted instantiation: udp.c:isc_ascii_lowercmp Unexecuted instantiation: rwlock.c:isc_ascii_lowercmp Unexecuted instantiation: ascii.c:isc_ascii_lowercmp Unexecuted instantiation: hash.c:isc_ascii_lowercmp Unexecuted instantiation: hashmap.c:isc_ascii_lowercmp Unexecuted instantiation: ht.c:isc_ascii_lowercmp Unexecuted instantiation: mem.c:isc_ascii_lowercmp Unexecuted instantiation: netaddr.c:isc_ascii_lowercmp Unexecuted instantiation: proxy2.c:isc_ascii_lowercmp Unexecuted instantiation: sockaddr.c:isc_ascii_lowercmp Unexecuted instantiation: tls.c:isc_ascii_lowercmp Unexecuted instantiation: http.c:isc_ascii_lowercmp Unexecuted instantiation: dns_rdata_fromtext.c:isc_ascii_lowercmp Unexecuted instantiation: dns_qpkey_name.c:isc_ascii_lowercmp Unexecuted instantiation: dns_master_load.c:isc_ascii_lowercmp Unexecuted instantiation: dns_rdata_fromwire_text.c:isc_ascii_lowercmp Unexecuted instantiation: dns_name_fromwire.c:isc_ascii_lowercmp Unexecuted instantiation: old.c:isc_ascii_lowercmp Unexecuted instantiation: isc_lex_getmastertoken.c:isc_ascii_lowercmp Unexecuted instantiation: isc_lex_gettoken.c:isc_ascii_lowercmp Unexecuted instantiation: dns_message_checksig.c:isc_ascii_lowercmp Unexecuted instantiation: dns_name_fromtext_target.c:isc_ascii_lowercmp Unexecuted instantiation: dns_message_parse.c:isc_ascii_lowercmp |