bagel99 / llvm-my66000

This is a fork of the LLVM project. The code in branch my66000 supports Mitch Alsup's MY66000. The code in branch mcore supports the Motorola MCore.
http://llvm.org
Other
2 stars 2 forks source link

EXIT with flag 5 #44

Closed tkoenig1 closed 1 year ago

tkoenig1 commented 1 year ago

Just starting to run compiler-generated code through the assembler. Still tons of missing pieces and bugs, but one thing got flagged as an error (reduced from Perl):

$ cat attributes.i
void Perl_xs_boot_epilog();
void boot_attributes() {
  Perl_xs_boot_epilog();
  Perl_xs_boot_epilog();
}
$ cat extract_exit.sh
set -e
a=attributes
b=${a}_opt
clang -Werror -fverbose-asm -c --target=my66000 -O3 -fno-vectorize -fno-slp-vectorize  -emit-llvm -fno-unroll-loops -fomit-frame-pointer $a.i || exit 1
opt  -disable-loop-unrolling -O3  --march=my66000 --frame-pointer=none --enable-vvm $a.bc  > $b.bc || exit 2
llc -O2 -enable-remove-range-check --disable-lsr --enable-predication --enable-predication2 --enable-carry-generation --early-carry-coalesce --enable-vvm -march=my66000 $b.bc || exit 3
grep "exit.*r[0-9]*,r[0-9]*,5," $b.s
asdf@flaemmli:~/PERL/EXIT$ ./extract_exit.sh
        exit    r0,r0,5,0

If I read the documentation correctly, the flags can only have values from 0 to 3.

tkoenig1 commented 1 year ago

Ah, I missed in the documentation that this now exists.

Closing.