nemanjai wrote:

> > Individual implementations will provide different sets of CSR's and need a 
> > way to read/write them. Of course, this can be done with inline asm, but 
> > doing such things with inline asm has its limitations (no error checking,
> 
> Wouldn't the assembler error check the constant? Diagnostic is probably a bit 
> uglier, but its not nothing.
Perhaps it would, but I really don't think it is particularly friendly to the 
user to rely on the assembler for this.

> 
> > if a user attempts to wrap the asm in a function, they won't be able to 
> > build code that calls those functions with -O0 as inlining/constant 
> > propagation is required, etc.).
> 
> You mean if they write a generic write_csr or read_csr function? If they use 
> a `write_frm` or `read_fcsr` function then there is no constant propagation 
> issue and they get to refer to the CSR by name in the assembly string instead 
> of maintaining a constant in their code.

Yes, I mean the general, unnamed CSR's.

https://github.com/llvm/llvm-project/pull/85091
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to