[Libre-soc-dev] pysvp64asm: opcode setvli not supported

Luke Kenneth Casson Leighton lkcl at lkcl.net
Mon Jun 14 17:09:58 BST 2021


https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/sv/trans/svp64.py;hb=HEAD

nope, no setvl, how did i miss that??

https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/decoder/isa/test_caller_setvl.py;h=0a66dfeb6ca969ed17bbf1d9bbc9abe890fc0f40;hb=HEAD#l51

err but the unit test has it (and works) moo?

https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/sv/trans/svp64.py;hb=HEAD#l172

found it.

so yes setvl *note not sv.setvl* is converted to 32 bit .long so that
binutils does not need it.


https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=media/audio/mp3/mp3_0_apply_window_float_basicsv.s;hb=HEAD#l82

ok so that's interesting: using macros from gnu as, these *should*
work BUT, the process will need to be:

* binutils performs macro-substitution, a bit like "gcc -E" option
* svp64 conversion is carried out (inserting .long on front of 32bit suffix)
* finally gas compile to binary.

these 3 will be at some point merged into binutils but until they are
this is the best we can do.

Lauri do you know how gas can be told to only do macro expansion phase only?

i can investigate later and create a demo.

l.



More information about the Libre-soc-dev mailing list