# comentaris
* He decidit importar RBinBind *binb; dins de RArch
* aixi podem portar wasm, pyc, dalvik i java facilment
# els q costaran una mica de portar
- pyc
- te una global q shauria de moure al Session *data
- fa servir get_reg_profile i set_reg_profile buuuuuuu
- pic
- gestiona coses de registres dins duna sram q s'alocata dins del plugin, aixo es el mateix q tenir globals, i shauria de moure al data o eliminarho per complert, pq aixo es pot emular amb r_io perfectament i no faria falta aixo, com a molt es podria fer q un RArch.cmd() retornes un script q sexecuti per inicialitzar r2 amb la config de la arch, rollo crear mapes de memoria, inicialitzar registres,e tc.. i com q seria una string, no cal afegir bindings de res a r_arch
- gb
- afegeix una instruccio a la vm de esil. aquest callback no esta clar com o quan sexecuta i imho hauria de tenir un altre nom
- dalvik i java plugins necessiten resoldre strings per fer el disasm be, sha de repensar si moureho a saco o fer q es processi dins de RParse, ja q es la seva "feina". aixi el disasm
* anaj.java tb afegeixe el cmd_exit. q imho es una guarrada pero util pq no hi ha RArch.cmd() i en el fons actua com un plugin de io o de core.
- de fet aquesta logica la veig millor com a plugin d'anal enlloc de fer
- snes
- te una var global per les flags. shauria d'eliminar o moure dins del session. el tema sq aixo no shauria de fer servir si estigues implementat l'esil.
- no se si hi ha gaires testos daixo
- estaria be implementar l'assembler tambe
- tms320
- te globals q shaurien deliminar o moure dins del session
- es podria optimizar si passem mask a tms320_dasm() per evitar q desensambli la string
# els facils de portar
- riscv
- te assembler i disassembler i no fa coses rares, hauria de ser facil de portar
- propeller
- no te esil. es podria afegir facilment a l'hora de portar el plugin, afegit un if (mask & ..ESIL) i cridant a una funcio q seteji op->esil depenent de l'opcode
- lh5801
- lm32
- i8080 - hauria de ser facil nom escal moure libr/asm/arch/i8080 a libr/arch/p/i8080
- bf
- el field de esil = true del plugin lhas desborrar, pq no es feia servir tampoc
-h h8300 - hauria de ser facil
- bpf
- hauria de ser bastant facil de portar, suporta encode i decode
- kvx
- hauria de ser facil, lo unic es el setregprofile q canvia la signatura tb
- chip8
- el mask no es fa servir be pq lo unic q evita es q faci el strdup, pero el format string es fa igualment, i shauria de ficar dins d'un if (mask & R_ARCH_OP_MASK_DISASM tb)
- no te assembler, i es una arch bastant facil, si t'animes a ferlo pot molar, pq aixi anem areaprofitant el refactoring per millorar els plugins, no nomes mourels. sino
- or1k
- fa servir globals q shan de moure adins del *data del RArchSession
-cr16
-
- 6502
- mcs96
- i8051
- te un parell de globals definides amb R_TH_LOCAL, shaurien deliminar i moure a dins del *data del RArchSession quan s'instancien
- el esil-init i fini s'esborren. de fet no fan res ja, i elq intentava implementar eraq els registres es mapejessin en memoria. ara amb r2 es pot fer un o reg://gpr i ja ho tens mapejat on vulguis aixi qno cal
GNU
- alpha
- cal moure els asm/arch/* cap a dins de arch/p/* encara q no acabo de tenir clara
- es pot aprofitar per simplificar una mica mes la definicio d plugins de binutils afegint una macro q implmeenti alpha_buffer_read_memory, symbol_at_address i memory_error_func
- aquestes macros s'han de dir DECLARE_GENERIC_...
- arc
- cris
- hppa-gnu
- lalai
- pdp11
- s390
- loongarch
- m68k
- nios1
- mips-gnu --- XXX have 2 global! remove them
v35:
- falta el callback de anal_preludes()
- nose si tenim el callback de mnemonics..diria q si, pero estaria be comprovarho i afegir algun test sino ( la comanda es aoml )
capstone
- son els mes dificils, aixi q millor deixemlos pel final