From: Alex Dowad <alexinbeijing@gmail.com>
To: musl@lists.openwall.com
Subject: [PATCH 1/3] Pull a couple common AWK functions for CFI scripts into separate file
Date: Fri, 2 Oct 2015 12:02:01 +0200 [thread overview]
Message-ID: <1443780123-6493-1-git-send-email-alexinbeijing@gmail.com> (raw)
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.
---
Makefile | 2 +-
tools/add-cfi.i386.awk | 27 ---------------------------
tools/common.awk | 26 ++++++++++++++++++++++++++
3 files changed, 27 insertions(+), 28 deletions(-)
create mode 100644 tools/common.awk
diff --git a/Makefile b/Makefile
index 5a6a43b..761482d 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/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.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]+),/)
diff --git a/tools/common.awk b/tools/common.awk
new file mode 100644
index 0000000..04482d4
--- /dev/null
+++ b/tools/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
+}
--
2.0.0.GIT
next reply other threads:[~2015-10-02 10:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-02 10:02 Alex Dowad [this message]
2015-10-02 10:02 ` [PATCH 2/3] When generating CFI for i386 asm, don't mistake an FDIV instruction for DIV Alex Dowad
2015-10-02 10:02 ` [PATCH 3/3] Add script to add CFI directives to asm files in debug builds of x86_64 Alex Dowad
2015-10-02 10:19 ` Rich Felker
2015-10-02 10:58 ` Alex
2015-10-02 11:01 ` Alex
2015-10-02 10:18 ` [PATCH 1/3] Pull a couple common AWK functions for CFI scripts into separate file Rich Felker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1443780123-6493-1-git-send-email-alexinbeijing@gmail.com \
--to=alexinbeijing@gmail.com \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).