1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/crashreporter/google-breakpad/src/third_party/libdisasm/TODO Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,43 @@ 1.4 +x86_format.c 1.5 +------------ 1.6 +intel: jmpf -> jmp, callf -> call 1.7 +att: jmpf -> ljmp, callf -> lcall 1.8 + 1.9 +opcode table 1.10 +------------ 1.11 +finish typing instructions 1.12 +fix flag clear/set/toggle types 1.13 + 1.14 +ix64 stuff 1.15 +---------- 1.16 +document output file formats in web page 1.17 +features doc: register aliases, implicit operands, stack mods, 1.18 +ring0 flags, eflags, cpu model/isa 1.19 + 1.20 +ia32_handle_* implementation 1.21 + 1.22 +fix operand 0F C2 1.23 +CMPPS 1.24 + 1.25 +* sysenter, sysexit as CALL types -- preceded by MSR writes 1.26 +* SYSENTER/SYSEXIT stack : overwrites SS, ESP 1.27 +* stos, cmps, scas, movs, ins, outs, lods -> OP_PTR 1.28 +* OP_SIZE in implicit operands 1.29 +* use OP_SIZE to choose reg sizes! 1.30 + 1.31 +DONE?? : 1.32 +implicit operands: provide action ? 1.33 +e.g. add/inc for stach, write, etc 1.34 +replace table numbers in opcodes.dat with 1.35 +#defines for table names 1.36 + 1.37 +replace 0 with INSN_INVALID [or maybe FF for imnvalid and 00 for Not Applicable */ 1.38 +no wait that is only for prefix tables -- n/p 1.39 + 1.40 +if ( prefx) only use if insn != invalid 1.41 + 1.42 +these should cover all the wacky disasm exceptions 1.43 + 1.44 +for the rep one we can chet, match only a 0x90 1.45 + 1.46 +todo: privilege | ring