Vector35 / Vector35/binaryninja-api
TriCore calling convention cannot specify integer argument registers
Aperta
@hongyu-dev ci sta già lavorando.
Dal 12/9/2025.
Arch: TriCore
Component: Core
Core: Calling Convention
Effort: Medium
Impact: Medium
- Lingua principale
- C++
- Stelle
- 1.3k
- Fork
- 298
- Merge medio
- 5g 5h
- PR unite (30g)
- 19
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Valutazione
Questa issue non è ancora stata valutata.