diff options
Diffstat (limited to 'libc-top-half/musl/tools/add-cfi.common.awk')
-rw-r--r-- | libc-top-half/musl/tools/add-cfi.common.awk | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libc-top-half/musl/tools/add-cfi.common.awk b/libc-top-half/musl/tools/add-cfi.common.awk new file mode 100644 index 0000000..04482d4 --- /dev/null +++ b/libc-top-half/musl/tools/add-cfi.common.awk @@ -0,0 +1,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 +} |