Displaying 6 results from an estimated 6 matches for "virtualfp".
2008 Apr 17
1
[LLVMdev] Being able to know the jitted code-size before emitting
Thx again Evan for the review. Here's a new patch for the JIT in itself.
The major changes are:
1) A JITMemoryManager now has a flag saying "I require to know the size
of what you want to emit"
2) DwarfJITEmitter is augmented with GetSize* functions
3) JITEmitter::startFunction checks if the JITMemoryManager requires to
know the size. If so, it computes it and gives it through the
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...Ptr);
> + } else {
> + EmitInt32(LabelPtr - BaseLabelPtr);
> + }
> +
> + BaseLabelPtr = LabelPtr;
> + IsLocal = true;
> + }
> +
> + // If advancing cfa.
> + if (Dst.isRegister() && Dst.getRegister() ==
> MachineLocation::VirtualFP) {
> + if (!Src.isRegister()) {
> + if (Src.getRegister() == MachineLocation::VirtualFP) {
> + EmitInt8(dwarf::DW_CFA_def_cfa_offset);
> + } else {
> + EmitInt8(dwarf::DW_CFA_def_cfa);
> + EmitULEB128Bytes(RI->getDwarfRegNum(Src.get...
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...EmitInt32(LabelPtr - BaseLabelPtr);
>> + }
>> +
>> + BaseLabelPtr = LabelPtr;
>> + IsLocal = true;
>> + }
>> +
>> + // If advancing cfa.
>> + if (Dst.isRegister() && Dst.getRegister() ==
>> MachineLocation::VirtualFP) {
>> + if (!Src.isRegister()) {
>> + if (Src.getRegister() == MachineLocation::VirtualFP) {
>> + EmitInt8(dwarf::DW_CFA_def_cfa_offset);
>> + } else {
>> + EmitInt8(dwarf::DW_CFA_def_cfa);
>> + EmitULEB128Bytes(RI-&g...
2007 Dec 10
2
[LLVMdev] Exception handling in JIT
Hi everyone,
Here's a patch that enables exception handling when jitting. I've
copy/pasted _many_code from lib/Codegen/DwarfWriter.cpp, so we may need
to factorize it, but the functionality is there and I'm very happy with
it :)
lli should now be able to execute the output from llvm-gcc when using
exceptions (the UnwindInst instruction is not involved in this patch).
Just add the
2008 Feb 04
0
[LLVMdev] Exception handling in JIT
...t; + } else {
> + MCE->emitInt32(LabelPtr - BaseLabelPtr);
> + }
> +
> + BaseLabelPtr = LabelPtr;
> + IsLocal = true;
> + }
> +
> + // If advancing cfa.
> + if (Dst.isRegister() && Dst.getRegister() ==
> MachineLocation::VirtualFP) {
> + if (!Src.isRegister()) {
> + if (Src.getRegister() == MachineLocation::VirtualFP) {
> + MCE->emitByte(dwarf::DW_CFA_def_cfa_offset);
> + } else {
> + MCE->emitByte(dwarf::DW_CFA_def_cfa);
> + MCE->emitULEB128Bytes(RI-...
2008 Feb 01
2
[LLVMdev] Exception handling in JIT
Dear all,
Here's a new patch with Evan's comments (thx Evan!) and some cleanups.
Now the (duplicated) exception handling code is in a new file:
lib/ExecutionEngine/JIT/JITDwarfEmitter.
This patch should work on linux/x86 and linux/ppc (tested).
Nicolas
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: jit-exceptions.patch
URL: