Backend calling convention: when pointer differs from integer


I am developing a backend for an architecture with two diferent sets of

The ABI specifies that pointer arguments use one kind of registers while
integers use the other one.
As LLVM translates pointers to the specified type (i32 in my case), I
cannot specify the correct calling convention.

I've seen that developing the TriCore backend the same issue appeared.
In TriCore backend document they mention they solved this issue by
annotating EVT, although no more detail is given and the backend is not
TriCore backend was developed in 2009, before LLVM2.6.
Is there support for this in newer LLVM versions?
Is there any example on how this was solved or any one faced this
problem later?
Can I use the or the compatibility is impossible?


Pedro Malagon