Right now, it has an L4 directory, so there's definitely some support. But there are no examples.
So it will be a bit of an adventure.
According to the STM32L43xxx reference manual, the USB controller has support for up to 8 endpoints. You need 1 EP for general control (EP0), 1 EP for DFU, and 2 EP per CDC channel.
So it should be no problem.
I did have a quick look through libopencm3 repo but it wasn't obvious what was or was not supported for different controllers, there isn't any chart or matrix either. It looks as though the usb code is common to most of the µcontrollers that have them, unlike some of the other peripherals.
Did anyone succeed in simulating C code for this project using spike?
I ran into problems with memory permissions and not sure whether there is a bug in spike or I just don't understand how to use it. I described an issue on spike's GitHub but I still have a feeling that maybe I just did something wrong. It seems that spike works fine for other people.