mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH 1/5] Pull a couple common AWK functions for CFI scripts into separate file
@ 2015-10-02 11:32 Alex Dowad
  2015-10-02 11:32 ` [PATCH 2/5] When generating CFI for i386 asm, don't mistake an FDIV instruction for DIV Alex Dowad
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Alex Dowad @ 2015-10-02 11:32 UTC (permalink / raw)
  To: musl

There is a lot which could be common between i386 and x86_64, but none of it
will be useful for any other arch. These should be useful for all archs,
however.
---

Thanks to Rich Felker for feedback. Some improvements have been made...

 Makefile                 |  2 +-
 tools/add-cfi.common.awk | 26 ++++++++++++++++++++++++++
 tools/add-cfi.i386.awk   | 27 ---------------------------
 3 files changed, 27 insertions(+), 28 deletions(-)
 create mode 100644 tools/add-cfi.common.awk

diff --git a/Makefile b/Makefile
index 5a6a43b..844a017 100644
--- a/Makefile
+++ b/Makefile
@@ -122,7 +122,7 @@ $(foreach s,$(wildcard src/*/$(ARCH)*/*.s),$(eval $(call mkasmdep,$(s))))
 # Choose invocation of assembler to be used
 # $(1) is input file, $(2) is output file, $(3) is assembler flags
 ifeq ($(ADD_CFI),yes)
-	AS_CMD = LC_ALL=C awk -f tools/add-cfi.$(ARCH).awk $< | $(CC) -x assembler -c -o $@ -
+	AS_CMD = LC_ALL=C awk -f tools/add-cfi.common.awk -f tools/add-cfi.$(ARCH).awk $< | $(CC) -x assembler -c -o $@ -
 else
 	AS_CMD = $(CC) -c -o $@ $<
 endif
diff --git a/tools/add-cfi.common.awk b/tools/add-cfi.common.awk
new file mode 100644
index 0000000..04482d4
--- /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
+}
diff --git a/tools/add-cfi.i386.awk b/tools/add-cfi.i386.awk
index 4a4a3b6..b8bdd7f 100644
--- a/tools/add-cfi.i386.awk
+++ b/tools/add-cfi.i386.awk
@@ -22,33 +22,6 @@ BEGIN {
   called = ""
 }
 
-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
-}
-
 function get_const1() {
   # for instructions with 2 operands, get 1st operand (assuming it is constant)
   match($0, /-?(0x[0-9a-fA-F]+|[0-9]+),/)
-- 
2.0.0.GIT



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-10-08 21:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-02 11:32 [PATCH 1/5] Pull a couple common AWK functions for CFI scripts into separate file Alex Dowad
2015-10-02 11:32 ` [PATCH 2/5] When generating CFI for i386 asm, don't mistake an FDIV instruction for DIV Alex Dowad
2015-10-02 11:32 ` [PATCH 3/5] When generating CFI for i386 asm, don't mistake an FMUL instruction for MUL Alex Dowad
2015-10-02 11:32 ` [PATCH 4/5] In i386 CFI script, binary ops like ADD, AND, etc. modify the 2nd operand, not 1st Alex Dowad
2015-10-02 11:32 ` [PATCH 5/5] Add script to add CFI directives to asm files in debug builds of x86_64 Alex Dowad
2015-10-08 21:37 ` [PATCH 1/5] Pull a couple common AWK functions for CFI scripts into separate file Rich Felker

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).