summaryrefslogtreecommitdiffstats
path: root/libc-top-half/musl/tools/add-cfi.common.awk
blob: 04482d43843d023b21279ac044fe6fa07bf0bc05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function hex2int(str,   i) {
  str = tolower(str)

  for (i = 1; i <= 16; i++) {
    char = substr("0123456789abcdef", i, 1)
    lookup[char] = i-1
  }

  result = 0
  for (i = 1; i <= length(str); i++) {
    result = result * 16
    char   = substr(str, i, 1)
    result = result + lookup[char]
  }
  return result
}

function parse_const(str) {
  sign = sub(/^-/, "", str)
  hex  = sub(/^0x/, "", str)
  if (hex)
    n = hex2int(str)
  else
    n = str+0
  return sign ? -n : n
}