In X86, special purpose temps used for argument passing are mutable, thus we can't use them directly as argument temps inherited from Lir's function.
Solution
Use a entirely new set of temps for argument passing only.
At function entry, load arguments from those temps into the real argument temps inherited from Lir.
This ensures immutability of argument temps.
Essentially, the argument passing temps are write-only after the initial loads.
In fact, only special purpose temps (e.g., rax) are modifiable, but since they are generated by X86, we have the guarantee that all temps from Lir are immutable, i.e., all variables in source program are immutable.
Issue
In X86, special purpose temps used for argument passing are mutable, thus we can't use them directly as argument temps inherited from Lir's function.
Solution
This ensures immutability of argument temps. Essentially, the argument passing temps are write-only after the initial loads. In fact, only special purpose temps (e.g., rax) are modifiable, but since they are generated by X86, we have the guarantee that all temps from Lir are immutable, i.e., all variables in source program are immutable.