kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

asm.sh (1353B)


      1 #!/usr/bin/env bash
      2 set -eu
      3 
      4 ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
      5 . "$ROOT/test/tier1/objlink/common.sh"
      6 
      7 KITCHEN="$ROOT/test/tier1/kitchen/objlink/asm"
      8 WORK="$(t1_work_dir "$ROOT" asm)"
      9 LOG_DIR="$(t1_log_dir "$ROOT")"
     10 KIT="${KIT:-$ROOT/build/kit}"
     11 
     12 mkdir -p "$WORK" "$LOG_DIR"
     13 t1_require_exe "$KIT" 'run: make bin'
     14 
     15 echo "tier1 asm: aa64 encode"
     16 KIT_TEST_ARCH=aa64 "$KIT" mc -target aarch64 -p - \
     17     < "$KITCHEN/aa64_cond.s" > "$LOG_DIR/asm-aa64-encode.log" 2>&1
     18 tr -d '[:space:]' < "$LOG_DIR/asm-aa64-encode.log" > "$WORK/aa64_cond.hex"
     19 printf '\n' >> "$WORK/aa64_cond.hex"
     20 t1_diff "$KITCHEN/aa64_cond.expected.hex" "$WORK/aa64_cond.hex" \
     21     "$WORK/aa64_cond.diff"
     22 
     23 echo "tier1 asm: x64 decode"
     24 KIT_TEST_ARCH=x64 t1_run "$LOG_DIR/asm-x64-decode.log" \
     25     "$KIT" disas -target x86_64 -x "$(cat "$KITCHEN/x64_mov_ret.hex")"
     26 t1_assert_grep "asm/x64-mov" '0:.*movl[[:space:]]+\$42, %eax' \
     27     "$LOG_DIR/asm-x64-decode.log"
     28 t1_assert_grep "asm/x64-ret" '5:.*ret' "$LOG_DIR/asm-x64-decode.log"
     29 
     30 echo "tier1 asm: rv64 decode"
     31 KIT_TEST_ARCH=rv64 t1_run "$LOG_DIR/asm-rv64-decode.log" \
     32     "$KIT" disas -target riscv64 -x "$(cat "$KITCHEN/rv64_li_ret.hex")"
     33 t1_assert_grep "asm/rv64-li" '0:.*li[[:space:]]+a0, 7' \
     34     "$LOG_DIR/asm-rv64-decode.log"
     35 t1_assert_grep "asm/rv64-ret" '4:.*ret' "$LOG_DIR/asm-rv64-decode.log"
     36 
     37 echo "tier1 asm: ok"