You can freely define the calling convention if required, see:
https://www.hex-rays.com/products/ida/support/idadoc/1361.shtml
Relevant excerpt:
IDA supports the user-defined calling convention. In this calling convention, the user can explicitly specify the locations of arguments and the return value. For example:
int __usercall func@<ebx>(int x, int y@<esi>);
denotes a function with 2 arguments: the first argument is passed on the stack and the second argument is passed in the ESI register and the return value is stored in the EBX register.
You can access the type definition by pressing Y
by default, when on a function name (and paste the above, for example).