anthony cantor
bd9d71c713
added some bindings for MC classes
2013-09-18 11:52:21 -05:00
anthony cantor
8dbfc377ad
added functionality to llvm.mc.Instr to print itself
...
uses binding of printInst on MCInstPrinter for printing
instruction.
also fixed a bug in llvm.mc.Disassembler.decode: idx should
start at zero, and we should pass code.getBase() + idx to
getInstruction. idx must start at zero because the while loop
compares it against code.getExtent() which returns only the
length of bs.
2013-09-18 11:52:21 -05:00
anthony cantor
82d9c787f3
added llvm.mc.Operand class
...
Operand encapsulates information that llvm provides about an MCOperand
in an instruction.
2013-09-18 11:52:21 -05:00
anthony cantor
87d444c9e9
added tests to testall for llvm.target and llvm.mc
...
tests dont check for correctness, just exercise the API
2013-09-18 11:52:21 -05:00
anthony cantor
fa26aa1651
fix typo
2013-09-18 11:52:21 -05:00
anthony cantor
cbf4a61a17
moved the MC data type access to TargetMachine
...
Disassembler now simply needs a TargetMachine object
and it will be able to access all the descriptor objects
it needs for disassembly through the target machine.
2013-09-18 11:52:21 -05:00
anthony cantor
0e265a2cc5
TargetTransformInfo stuff doesnt work in llvm >= 3.3
2013-09-18 11:52:21 -05:00
anthony cantor
e65f6174a7
some fixes so that test/testall.py will run
...
some easy changes to core.py which were just conditionals on llvm
version. for the broken tests which i didnt know how to fix i
simply disabled them.
2013-09-18 11:52:21 -05:00
anthony cantor
83299a20a6
refactor TargetMachine into a new target module
...
TargetMachine is generally useful outside of the execution engine
context so i think it makes sense to move it into its own module.
2013-09-18 11:52:21 -05:00
anthony cantor
97c0e15e72
add some MCAsmInfo bindings
2013-09-18 11:52:21 -05:00
anthony cantor
4eab936224
added new MC classes for richer disassembling functionality
2013-09-18 11:52:21 -05:00
anthony cantor
78be6a7f5f
conditionals for compatibility with llvm < 3.4
...
i only intend to support MC bindings (and anything reliant on MC)
for llvm 3.4 and greater.
2013-09-18 11:52:21 -05:00
anthony cantor
bc02b3d90a
use (llvm 3.4) built in StringRefMemoryObject instead of BytesMemoryObject
2013-09-18 11:52:21 -05:00
anthony cantor
aa0ee9b6a6
changes to make llvmpy compatible with development branch of llvm
...
mostly just removing stuff and changing function prototypes.
with these changes, llvmpy compiles and llvm.test() passes.
2013-09-18 11:52:21 -05:00
anthony cantor
0610a27535
add MCAsmInfo
2013-09-18 11:52:21 -05:00
anthony cantor
f4bbb18e47
fixed arm test: arm code needs to be reverse b.c. its little endian
2013-09-18 11:52:20 -05:00
anthony cantor
25e6651055
added MCOperand methods
2013-09-18 11:52:20 -05:00
anthony cantor
38a00c6e55
fixed typo in new_from_triple and added args to new_from_name
...
new_from_triple: need to pass subtarget info to new_from_target
new_from_name: allow caller to pass cpu and feature info
2013-09-18 11:52:20 -05:00
anthony cantor
818c9289fc
implemented binding for MCDisassembler.getInstruction
...
also added new llvm.mc module to act as higher level
python access to the MC section of LLVM (added Instr
and Disassembler classes).
2013-09-18 11:52:20 -05:00
anthony cantor
ba03b226c8
added Target.createMCSubtargetInfo and createMCDisassembler
...
also added bindings to classes required by the target methods. also
added a convenience function to initialize all target components to
the llvm module
2013-09-18 11:52:20 -05:00
anthony cantor
8f2c27ba41
added TargetRegistry_targets_list
...
this allows all targets to be enumerated. this is generally useful,
but i specifically wanted to be able to see which targets report
having a disassembler. it is necessary to init the various
target components in order for them to report that they have one,
thus i added InitializeAllDisassemblers and InitializeAllAsmParsers
to TargetSelect.py
2013-09-18 11:52:20 -05:00
anthony cantor
ef59848d18
modify build process to support all targets
...
my goal is to facillitate a wide range of disassembly capability through
llvm disassemblers, so supporting as many machine targets as possible is ideal.
2013-09-18 11:52:20 -05:00
anthony cantor
4905743e0a
add BytesMemoryObject to extra.h and a binding for it in llvmpy/src
2013-09-18 11:52:20 -05:00
Jon Riehl
09d9dbba1e
Merge pull request #83 from sergiopasra/noshebang
...
Remove shebangs from library code
2013-09-09 14:12:40 -07:00
Sergio Pascual
aae25f5e55
Remove shebangs from library code
2013-09-09 13:00:01 +02:00
Siu Kwan Lam
af2c1d6d01
update change log
0.12.0
2013-08-28 17:11:03 -05:00
Siu Kwan Lam
4e993570cd
disable logging to avoid a exception ignored message
2013-08-28 14:18:35 -05:00
Siu Kwan Lam
6bbf53241d
revive a casting code in the binding
2013-08-28 13:55:38 -05:00
Siu Kwan Lam
0801df41dc
fix upcasting problem ( #77 thanks to cantora)
2013-08-26 12:23:28 -05:00
Siu Kwan Lam
24f1b33737
Fix a ownership bug (thanks to cantora)
2013-08-23 10:59:47 -05:00
Siu Kwan Lam
536bc37c94
Disable MCJIT test on windows 64-bit ( #79 )
2013-08-22 14:13:17 -05:00
Jay Bourque
351bd39814
Python3 fix: Implement __hash__ method for Value class
2013-08-20 17:20:57 -05:00
majidaldo
33ca795e0c
remove chrpath
2013-08-16 11:50:38 -05:00
Siu Kwan Lam
d57c4d88c6
fix x86 arch type for LLRT
2013-08-14 18:25:32 -05:00
Siu Kwan Lam
328f88bbd5
llvm3.3 has a different TargetTransformInfo
2013-08-14 18:18:05 -05:00
Siu Kwan Lam
ea5b430297
add IR files in setup.py
2013-08-14 18:09:17 -05:00
Siu Kwan Lam
5f01343bba
Merge branch 'llrt'
2013-08-14 17:45:58 -05:00
Siu Kwan Lam
bf8693bb80
disable float div/mod test temporarily
2013-08-14 17:45:38 -05:00
Siu Kwan Lam
e69048ad3d
add div64 and mod64
2013-08-14 17:24:34 -05:00
Siu Kwan Lam
8480d55faf
add sdivmod;
...
improve build system;
2013-08-14 15:29:13 -05:00
majidaldo
7d1c4c18a0
high version number
2013-08-14 14:39:10 -05:00
Siu Kwan Lam
07c64779d8
begin low-level runtime implementation
2013-08-13 18:38:41 -05:00
Siu Kwan Lam
d10b182479
dislabe MCJIT tests for LLVM3.2
2013-08-13 15:27:54 -05:00
majidaldo
1be8b07ced
charpath just for linux
2013-08-13 14:59:33 -05:00
majidaldo
3a289ccace
add percent python
2013-08-13 14:55:42 -05:00
majidaldo
bf0253c9f9
add chrpath
2013-08-13 14:55:13 -05:00
majidaldo
d060c10096
add conda build script
2013-08-13 14:42:54 -05:00
Siu Kwan Lam
1ed3c77310
add neg nuw nsw
2013-08-12 16:16:38 -05:00
Siu Kwan Lam
cfe5e9ea92
add exact flag to IRBuilder
2013-08-12 16:11:34 -05:00
Siu Kwan Lam
1e9d37a64e
add no-signed-wrap and no-unsigned-wrap flags to IRBuilder
2013-08-12 15:59:17 -05:00