Unit tests: #!/bin/sh
set -e
cat arm-tok.h |grep DEF_ASM_CONDED |grep -v '#define' |grep -v '/[*]' |sed -e
's;DEF_ASM_CONDED.\(.*\).$;\1;'| grep -v 'not useful' >L
for s in $(cat L)
do
ok=0
for args in "r3, r4, r5, r6" \
"r3, r4, r5" \
"r3, r4" "r3" \
"{r3,r4,r5}" \
"r2!, {r3,r4,r5}" \
"r2, [r3, r4]" \
"r2, [r3, r4]!" \
"r2, [r3, -r4]" \
"r2, [r3, -r4]!" \
"r2, [r3], r4" \
"r2, [r3, #4]" \
"r2, [r3, #-4]" \
"r2, r3, #4" \
"r2, r3, #-4" \
"r2, #4" \
"r2, #-4" \
"#4" \
"#-4" \
""
do
echo "$s $args" > a.s
#cat a.s
if as -o a.o a.s 2>/dev/null
then
objdump -S a.o |grep "^[ ]*0:" >a.expected
echo '__asm__("'"$s ${args}"'");' > a.c
if ./tcc -o a.o -c a.c
then
objdump -S a.o |grep "^[ ]*0:" >a.got
diff -u a.got a.expected || {
echo "warning: '$s $args' did not work
correctly in tcc (see above)">&2
}
else
echo "warning: '$s $args' did not work in
tcc">&2
fi
ok=1
fi
done
if [ "${ok}" -eq "0" ]
then
echo "warning: $s could not be used.">&2
fi
done
(This cannot test branches, though)
pgpf3U4sxKat4.pgp
Description: OpenPGP digital signature
_______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel
