fee4d6fe9a
A few changes to libdisasm
Artur K2012-03-18 11:35:13 +01:00
71fc8bfef7
Added JumpTable class, and simplified LongJCond23/22 by using Assignment class as an parameter.
Artur K2012-03-17 23:42:46 +01:00
7b63b45dd5
Some more method splitting , replaced a few argument that were using ICODE, with LLInst
Artur K2012-03-17 23:35:48 +01:00
d3a22fc03c
Refactored BasicBlock::genDU1() into three utility methods. Const'ized a few pointers in locident.cpp
Artur K2012-03-17 23:15:27 +01:00
61392772e1
More work on LLOperand, Adding accessors for src operand to LLIns
Artur K2012-03-17 23:09:35 +01:00
26b9ab1e00
Added setters/creation methods to LLOperand Moved PROG global into Project instance. Still need to refactor all usages of prog. Split fseek offset calculation in frontend.cpp to allow for easier debugging. Added alreadyDecoded method to CIcodeRec LONGID_TYPE now has a method matching srcDstRegMatch icode's src a dst regs
Artur K2012-03-17 22:57:54 +01:00
dc8e7156a8
LLOperand no longer inherits from llvm::MCOperand, it contains one instead. Added BB accessors to ICODE and typedef'd BB to MachineBasicBlock Removed an unused method in ICODE, and a parameter in isLong23
Artur K2012-03-17 22:38:54 +01:00
467ff56356
Added libdisasm to 3rd_party. Started the move of 'prog' global into Project.
Artur K2012-03-17 21:36:10 +01:00
a740690e04
Replaced memory tags #defines with eAreaType enum Added replaceExpr, which replaces expression, and deletes the old one. Moved subReg* family to Machine_X86, also moved there a few float op decoding parts. A few more usages of cCode global replaced with ostreams Refactored compoundCond().
Artur K2012-03-13 22:10:07 +01:00
c2e5ac2694
Added global 'Project' class, and DccFrontend
Artur K2012-03-13 09:04:32 +01:00
902a5ec3d8
Extracted commonalities between SYM and STKSYM into SymbolCommon and between SYMTAB and STKFRAME into SymbolTableCommon<STKSYM>
Artur K2012-03-13 01:22:13 +01:00
d3e62a99aa
Replaced return type of insertCallGraph with bool renamed two locals in newRegArg, and used range based for in it
Artur K2012-03-13 00:43:05 +01:00
fe250a822d
Removed 2 lingering TRUE/FALSE references Removed 2 calls to cCode.appendDecl in walkCondExpr, replaced with ostringstream usage + 1 call to cCode.appendDecl Created Type helper class = TypeContainer
Artur K2012-03-13 00:35:32 +01:00
14b06c252e
Replaced all TRUE/FALSE macro usages with true/false booleans
Artur K2012-03-13 00:28:04 +01:00
d39449124a
writeProcComments is now member of Function, at it has an ostream based overload, also added gmock framework to dependencies
Artur K2012-03-13 00:16:09 +01:00
bc395da6ab
lots of changes, created Disassembler class, removed a few globals etc.
Artur K2012-03-11 02:48:19 +01:00
69d848ca78
Basic block is purer range now, it does not hold start and length members, it can be used in range based fors now
Artur K2012-03-08 00:20:13 +01:00
fc0d35cf06
More eReg's and fixed writeBitVector for registers
Artur K2012-03-07 22:34:36 +01:00
e0740f5ff7
Moved most of register definitions to use eReg enum
Artur K2012-03-07 21:52:46 +01:00
ddd501de1f
COND_EXPR splitting preparations
Artur K2012-03-06 08:35:45 +01:00
d7ddc86d76
Fixed synthetic instructions for DIV and XCHG to handle Byte wide operations, and also in case of XCHG memory, also fixed assembly generation for IN/OUT operations and all string instructions MOVS etc.
Artur K2012-03-04 00:30:53 +01:00
32d1b71e79
LLInst opcode is private now, added accessors and moved a few functions into LLInst
Artur K2012-03-01 00:40:29 +01:00
4c7df165ee
removed integer offset idLong constructor
Artur K2012-02-29 23:35:25 +01:00
5d42fb0624
removed dependence on numeric offset in checkLongEq and it's family
Artur K2012-02-29 23:30:31 +01:00
0ad46c3986
renamed flag methods in LLInst
Artur K2012-02-29 22:26:23 +01:00
6b7d3f6209
Started separation between Low level and higher level instructions
Artur K2012-02-29 18:13:43 +01:00
0eab9d1db5
Moved some more enums into Enums.h, removed multiple defs of LH macro, fixed missed initialization in STATE
Artur K2012-02-29 12:05:39 +01:00
493225ad64
Replaced a few places which used ICODE * in favour of ICODE &, also split HLTYPE attriubtes into 3 classes with virtual methods
Artur K2012-02-28 21:17:50 +01:00
e0503c71a3
moved struct DU_ICODE into ICODE, alse replaced newRegArg pointer params with iterators
Artur K2012-02-28 16:50:15 +01:00
fbf8cc3a7a
ICODE::DU1 idx[][] is now an array of structures containing vectors<iICODE>, seems that while changing that some dataflow issues were fixed
Artur K2012-02-28 16:38:36 +01:00
3cb26d99d2
CIcodeRec is no longer an Array, it's now a list, will help with iterator stability
Artur K2012-02-28 03:06:34 +01:00