Vector35 / Vector35/binaryninja-api
TriCore calling convention cannot specify integer argument registers
Open
@hongyu-dev is already working on this.
Since Sep 12, 2025.
Arch: TriCore
Component: Core
Core: Calling Convention
Effort: Medium
Impact: Medium
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Because the calling convention model does not identify groupings of registers (aside from integer/float) we cannot properly model TriCore's dual integer register files (a, d). This resulted in us deciding to fallback entirely to heuristics to pickup the arguments. The one main issue with that is the heuristics are not aware of the register ordering, i.e. that register 1 must be preceded by register 0.
We should either:
- Improve our calling convention model to have a notion of register files (or groups)
- Create a workflow that fixes up the misidentified functions, this would incur a reanalysis cost as we would likely have to re-analyze the function assuming that we cannot interject our workflow activity before any usage of the bad params.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.