blob: cb8a71071f5e436262dcd14c5405d45e846cede2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/usr/bin/env bash
set -euo pipefail
root="$(cd "$(dirname "$0")/.." && pwd)"
cd "$root"
assemblers="${1:-${ASSEMBLER:-nasm fasm}}"
docker compose up -d >/dev/null
docker compose exec -T -e ASMS="$assemblers" hdass bash -c '
set -e
cd /hdass
[ -d build-linux ] || meson setup build-linux >/dev/null
meson compile -C build-linux >/dev/null
cat > /tmp/sidebyside.awk <<"AWK"
NR == FNR { left[FNR] = $0; if (length($0) > width) width = length($0); ln = FNR; next }
{ right[FNR] = $0; if (FNR > rn) rn = FNR }
END {
total = ln > rn ? ln : rn
for (i = 1; i <= total; i += 1)
printf "%-*s | %s\n", width, (i in left ? left[i] : ""), (i in right ? right[i] : "")
}
AWK
for asm in $ASMS; do
for src in examples/*.hdass; do
printf "\n===== %s (%s) =====\n" "$(basename "$src")" "$asm"
./build-linux/hdass -t "$asm" "$src" -o /tmp/gen.asm
awk -f /tmp/sidebyside.awk <(expand -t 4 "$src") <(expand -t 4 /tmp/gen.asm)
done
done
' </dev/null
|