diff options
author | Jason Gross <jgross@mit.edu> | 2017-09-12 15:28:20 -0400 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2017-09-12 15:28:20 -0400 |
commit | 284a3d5aa23aa17f9fcdcccc378c350ea3a88a24 (patch) | |
tree | 7c0986093b2ee9b5da5ba793f69dc4152db11e59 | |
parent | f3fc04880bfdacfb6744355851c559d0b954c61b (diff) |
Update extract-function.sh for inline asm
It needs to use printf rather than echo to not interpret \n, \t, and it
needs to not insert { and } everywhere.
-rw-r--r-- | Makefile | 10 | ||||
-rwxr-xr-x | extract-function.sh | 13 |
2 files changed, 14 insertions, 9 deletions
@@ -142,7 +142,7 @@ $(DISPLAY_NON_JAVA_VO:.vo=.log) : %Display.log : %.vo %Display.v src/Compilers/Z c: $(DISPLAY_NON_JAVA_VO:Display.vo=.c) $(DISPLAY_NON_JAVA_VO:Display.vo=.h) $(DISPLAY_NON_JAVA_VO:Display.vo=.c) : %.c : %Display.log extract-function.sh - ./extract-function.sh $(patsubst %Display.log,%,$(notdir $<)) < $< > $@ + FIAT_CRYPTO_EXTRACT_FUNCTION_IS_ASM="" ./extract-function.sh $(patsubst %Display.log,%,$(notdir $<)) < $< > $@ $(DISPLAY_NON_JAVA_VO:Display.vo=.h) : %.h : %Display.log extract-function-header.sh ./extract-function-header.sh $(patsubst %Display.log,%,$(notdir $<)) < $< > $@ @@ -193,7 +193,7 @@ src/Specific/NISTP256/AMD64/test/femul_test: src/Specific/NISTP256/AMD64/compile src/Specific/NISTP256/AMD64/compiler.sh -o src/Specific/NISTP256/AMD64/test/femul_test src/Specific/NISTP256/AMD64/femul.c -I liblow -I src/Specific/NISTP256/AMD64/ src/Specific/NISTP256/AMD64/test/femul_test.c liblow/cmovznz.c src/Specific/NISTP256/AMD64/test/p256_test: src/Specific/NISTP256/AMD64/compiler.sh src/Specific/NISTP256/AMD64/test/p256_test.c liblow/cmovznz.c src/Specific/NISTP256/AMD64/feadd.c src/Specific/NISTP256/AMD64/feadd.h src/Specific/NISTP256/AMD64/femul.c src/Specific/NISTP256/AMD64/femul.h src/Specific/NISTP256/AMD64/fenz.c src/Specific/NISTP256/AMD64/fenz.h src/Specific/NISTP256/AMD64/fesub.c src/Specific/NISTP256/AMD64/fesub.h src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c src/Specific/NISTP256/AMD64/p256.h - src/Specific/NISTP256/AMD64/compiler.sh -o src/Specific/NISTP256/AMD64/test/p256_test src/Specific/NISTP256/AMD64/test/p256_test.c src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c src/Specific/NISTP256/AMD64/feadd.c src/Specific/NISTP256/AMD64/femul.c src/Specific/NISTP256/AMD64/fenz.c src/Specific/NISTP256/AMD64/fesub.c liblow/cmovznz.c -I liblow -I src/Specific/NISTP256/AMD64/ + src/Specific/NISTP256/AMD64/compiler.sh -o src/Specific/NISTP256/AMD64/test/p256_test src/Specific/NISTP256/AMD64/test/p256_test.c src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c src/Specific/NISTP256/AMD64/feadd.c src/Specific/NISTP256/AMD64/femul.c src/Specific/NISTP256/AMD64/fenz.c src/Specific/NISTP256/AMD64/fesub.c liblow/cmovznz.c -I liblow -I src/Specific/NISTP256/AMD64/ src/Specific/NISTP256/AMD64/measure: src/Specific/NISTP256/AMD64/bench_madd.c src/Specific/NISTP256/AMD64/feadd.h src/Specific/NISTP256/AMD64/feadd.c src/Specific/NISTP256/AMD64/femul.h src/Specific/NISTP256/AMD64/femul.c src/Specific/NISTP256/AMD64/fenz.h src/Specific/NISTP256/AMD64/fenz.c src/Specific/NISTP256/AMD64/feopp.h src/Specific/NISTP256/AMD64/feopp.c src/Specific/NISTP256/AMD64/fesub.h src/Specific/NISTP256/AMD64/fesub.c src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c liblow/cmovznz.c measure.c src/Specific/NISTP256/AMD64/compiler.sh measure.c src/Specific/NISTP256/AMD64/compiler.sh -o src/Specific/NISTP256/AMD64/measure src/Specific/NISTP256/AMD64/*.c -I src/Specific/NISTP256/AMD64/ measure.c -D UUT=bench_madd -I liblow liblow/*.c @@ -201,11 +201,11 @@ src/Specific/NISTP256/AMD64/measure: src/Specific/NISTP256/AMD64/bench_madd.c s src/Specific/NISTP256/AMD64/measurements.txt: src/Specific/NISTP256/AMD64/measure capture.sh ./capture.sh src/Specific/NISTP256/AMD64 65535 -src/Specific/NISTP256/AMD64/icc/combined.c: liblow/cmovznz.c src/Specific/NISTP256/AMD64/feadd.c src/Specific/NISTP256/AMD64/femul.c src/Specific/NISTP256/AMD64/fenz.c src/Specific/NISTP256/AMD64/fesub.c src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c extract-function.sh - (cd src/Specific/NISTP256/AMD64 && ( ../../../../extract-function.sh "stdint" < /dev/null | grep -v stdint && sed 's:^uint64_t:static inline &:' ../../../../liblow/cmovznz.c && echo fenz.c feadd.c fesub.c femul.c p256_jacobian_add_affine.c | xargs -n1 grep -A99999 void -- ) | sed 's:^void force_inline:static inline void force_inline:' | grep -v liblow > icc/combined.c ) +src/Specific/NISTP256/AMD64/icc/combined.c: liblow/cmovznz.c src/Specific/NISTP256/AMD64/feadd.c src/Specific/NISTP256/AMD64/femul.c src/Specific/NISTP256/AMD64/fenz.c src/Specific/NISTP256/AMD64/fesub.c src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c extract-function.sh + (cd src/Specific/NISTP256/AMD64 && ( FIAT_CRYPTO_EXTRACT_FUNCTION_IS_ASM="" ../../../../extract-function.sh "stdint" < /dev/null | grep -v stdint && sed 's:^uint64_t:static inline &:' ../../../../liblow/cmovznz.c && echo fenz.c feadd.c fesub.c femul.c p256_jacobian_add_affine.c | xargs -n1 grep -A99999 void -- ) | sed 's:^void force_inline:static inline void force_inline:' | grep -v liblow > icc/combined.c ) src/Specific/NISTP256/AMD64/icc/p256_test: src/Specific/NISTP256/AMD64/icc/compiler.sh src/Specific/NISTP256/AMD64/test/p256_test.c src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s src/Specific/NISTP256/AMD64/p256.h - src/Specific/NISTP256/AMD64/icc/compiler.sh -o src/Specific/NISTP256/AMD64/icc/p256_test src/Specific/NISTP256/AMD64/test/p256_test.c src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s -I src/Specific/NISTP256/AMD64/ + src/Specific/NISTP256/AMD64/icc/compiler.sh -o src/Specific/NISTP256/AMD64/icc/p256_test src/Specific/NISTP256/AMD64/test/p256_test.c src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s -I src/Specific/NISTP256/AMD64/ src/Specific/NISTP256/AMD64/icc/measure: src/Specific/NISTP256/AMD64/icc/compiler.sh src/Specific/NISTP256/AMD64/p256.h src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s src/Specific/NISTP256/AMD64/bench_madd.c src/Specific/NISTP256/AMD64/icc/compiler.sh -o src/Specific/NISTP256/AMD64/icc/measure src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s src/Specific/NISTP256/AMD64/bench_madd.c -I liblow -I src/Specific/NISTP256/AMD64 measure.c -D UUT=bench_madd diff --git a/extract-function.sh b/extract-function.sh index b99862405..b19adcd76 100755 --- a/extract-function.sh +++ b/extract-function.sh @@ -36,6 +36,12 @@ EOF lines=0 show=false +brace='{ ' +close_brace='}' +if [ ! -z "${FIAT_CRYPTO_EXTRACT_FUNCTION_IS_ASM}" ]; then + brace='' + close_brace='' +fi while IFS= read -r line; do case "$line" in *"λ '"*) @@ -57,7 +63,7 @@ while IFS= read -r line; do i=$((i+1)) done; seq 2 "$lines" | while IFS= read -r _; do - echo -n "}" + echo -n "${close_brace}" done echo "}" echo "// caller: uint64_t out[$i];" ) @@ -68,14 +74,13 @@ while IFS= read -r line; do case "$show" in true) lines=$((lines+1)) - line="$(echo "$line" | \ + line="$(printf "%s" "$line" | \ sed s':^\([^,]*\),\(\s*\)\([^ ]*\) \([^ ]*\)\(.*\)\(mulx.*\))\([; ]*\)$: \3 \4;\2\1\5_\6, \&\4)\7:' | \ sed s':^\([^,]*\) \([^, ]*\)\(\s*\),\(.*\)\(addcarryx.*\))\([; ]*\)$:\1 \2\3;\4_\5, \&\2)\6:' | \ sed s':^\([^,]*\) \([^, ]*\)\(\s*\),\(.*\)\(subborrow.*\))\([; ]*\)$:\1 \2\3;\4_\5, \&\2)\6:')" - echo "{ $line" + printf "%s%s\n" "${brace}" "${line}" ;; esac ;; esac done - |