Index: fusl/tools/add-cfi.common.awk |
diff --git a/fusl/tools/add-cfi.common.awk b/fusl/tools/add-cfi.common.awk |
new file mode 100644 |
index 0000000000000000000000000000000000000000..04482d43843d023b21279ac044fe6fa07bf0bc05 |
--- /dev/null |
+++ b/fusl/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 |
+} |