Adding TODO.
This commit is contained in:
parent
91f9e8b7bb
commit
0aaaac2a7a
|
@ -0,0 +1,60 @@
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
```
|
||||||
|
stbu
|
||||||
|
lwzu
|
||||||
|
|
||||||
|
addx
|
||||||
|
addix
|
||||||
|
addic
|
||||||
|
addzex
|
||||||
|
subfx
|
||||||
|
subfex
|
||||||
|
subficx
|
||||||
|
|
||||||
|
mulli
|
||||||
|
mullwx
|
||||||
|
divwux
|
||||||
|
|
||||||
|
andix
|
||||||
|
orx
|
||||||
|
|
||||||
|
rlwinmx
|
||||||
|
rldiclx
|
||||||
|
extsbx
|
||||||
|
slwx
|
||||||
|
srawix
|
||||||
|
|
||||||
|
# can be no-op
|
||||||
|
dcbt
|
||||||
|
dcbtst
|
||||||
|
|
||||||
|
twi
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Codegen
|
||||||
|
|
||||||
|
### Indirect branches (ctr/lr)
|
||||||
|
|
||||||
|
emit_control.cc XeEmitBranchTo
|
||||||
|
Need to take the value in LR/CTR and do something with it.
|
||||||
|
|
||||||
|
Fast path:
|
||||||
|
- Every time LR would be stashed, add the value of LR (some NIA) to a lookup
|
||||||
|
table.
|
||||||
|
- When doing an indirect branch first lookup the address in the table.
|
||||||
|
- If not found, slow path, else jump.
|
||||||
|
|
||||||
|
Slow path:
|
||||||
|
- Call out and do an SDB lookup.
|
||||||
|
- If found, return, add to lookup table, and jump.
|
||||||
|
- If not found, need new function codegen!
|
||||||
|
|
||||||
|
### Caching of register values in basic blocks
|
||||||
|
|
||||||
|
Right now the SSA values seem to leak from the blocks somehow. All caching
|
||||||
|
is disabled.
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in New Issue