summaryrefslogtreecommitdiff
path: root/tools/add-cfi.common.awk
diff options
context:
space:
mode:
Diffstat (limited to 'tools/add-cfi.common.awk')
-rw-r--r--tools/add-cfi.common.awk26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/add-cfi.common.awk b/tools/add-cfi.common.awk
new file mode 100644
index 00000000..04482d43
--- /dev/null
+++ b/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
+}