Tweaks to get the generator running on the next app.

This commit is contained in:
Ben Vanik
2013-02-03 23:26:20 -08:00
parent f1ea74dcff
commit 3dfd9c4b00
5 changed files with 56 additions and 23 deletions

55
TODO.md
View File

@@ -42,20 +42,40 @@ KeBugCheck:
## Instructions
```
rlwimix
rldiclx
lwarx
stwcx
lfd
lfdx
lfs
lfsu
lfsx
stfd
stfiwx
stfs
stfsu
stfsx
addcx
addicx
divwx
extswx
faddx
fcfidx
fcmpu
fctiwzx
fdivx
fmaddsx
fmrx
fmulsx
fmulx
fnegx
frspx
mulldx
negx
rlwimix
rldiclx
rldicrx
sradx
srdx
srwx
subfcx
subfzex
new:
extldi
mfmsr
mtmsrd
srdi
```
### XER CA bit (carry)
@@ -134,5 +154,16 @@ Slow path:
- If not found, need new function codegen!
```
## Linking/multicore processing
Need to split up processing of functions.
ModuleGenerator::Generate's BuildFunction loop is the real time hog here.
Spin up N threads. Each as a module and steals functions from the queue to
generate. After the module hits a certain size it's dumped to disk and another
is created.
Afterwards, all modules are loaded lazily and linked together. The final one
is writen out and loaded again lazily.
JIT works on that.
## Debugging