# pu3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 THIS IS PU3.
well, it's in beta...
but still, IT'S PU3 WOOOHOOO1?!?!!?!?!? ## what cpu ## what's it do run bytecode fast ## why pu2 was faster but needed more instructions. pu3 slashes inst count usage by about 3x ## ir2? ir2 stays. maybe i'll rebrand it to ir3, but for now it's ir2. on the beta branch (here) it supports targetting pu3! the tests work, but surely i missed some logic bugs still hidden inside. ## GUIDE??? pu3/pu3.cpu.c ## I NEED MONEY me too :< in my insatiable greed era ~~# pu2 + ppu!~~ ~~smaller, better, faster, compact-er! let's gooooo~~ ~~## pu2~~ ~~### how does this workkk~~ ~~to be humble, pretty clever stuff. (i forgor)~~ ~~### WHAT IS PU2~~ ~~- CPU Emulator~~ ~~- Assembler~~ ~~- Test Suite~~ ~~### instruction set~~ ~~pu2 has less instructions than pu (aka pu1), [moon's note: wow it seems like i forgor to complete this sentence...]~~ ~~## ppu~~ ~~### what the hell~~ ~~yeah i know! it's a parallel cpu. so much cool stuff you can do with openmp. just make sure to compile with `-fopenmp`~~ ~~### WHAT IS THIS~~ ~~- CPU~~ ~~- Assembler~~ ~~- A full day of pain and suffering (now that i think about it, a day isn't really that much time)~~ ~~### instruction set~~ ~~RTFM (in ppu/ppu.c ofc)~~ # ~~moonvm~~ ~~i have no idea what to name this. gimme names if you got any.~~ ## ~~parts? how's it work?~~ ~~i don't remember. i have ptsd from writing it.~~ ## ~~what is it~~ ~~i asked it and it said it's a vm+assembler. the unit tests are written by ai cus i was really not feeling like writing unit tests of all things. the skeleton code is all mine tho :P~~ ## ~~wowie~~ ~~ikr,,,~~ ## ~~instruction set?~~ ~~check the comments in pu.c~~ ~~i still haven't added docs for the assembler, but ehh it's pretty self explanatory. ask ai to explain it to you if you can't be assed to read.~~ ## ~~t?~~ ~~that file is the instruction encoding table for the assembler. you can add shit to it if you wanna. this is the original:~~ ~~```char *R="hlt\0 ar1\2 ar2\3 ar3\4 ar4\5 ar5\6 ar6\7 ar7\x8 ar8\x9 r1a\xA r2a\xB r3a\xC r4a\xD r5a\xE r6a\xF r7a\20 r8a\21 mem\22 aca\23 add\24 sub\25 not\26 clr\27";```~~ ~~removing it means you can't assemble stuff anymore. though the pu.c wrapper does write it for you if it doesn't exist.~~