search for: calleesavedregisters

Displaying 5 results from an estimated 5 matches for "calleesavedregisters".

2004 Jun 09
2
[LLVMdev] Saving registers used by function
Alkis Evlogimenos wrote: > On Wed, 2004-06-09 at 04:56, Vladimir Prus wrote: > > Hello! > > Is there an (semi)automatic way to save registers used by a function? For > > example, on my target I have to store ar0-ar4 and gr0-gr4, gr5, gr6. For > > now I just emit huge prologue code to push them all to stack -- even if > > they are not modified at all. > > >
2004 Jun 09
0
[LLVMdev] Saving registers used by function
...> > Actually, about callee saved registers. The naive compiler pushes/pop all > registers which are used in a function and must be preserved. You should define these as they are defined in the X86 and PowerPC backends: def X86 : Target { // Specify the callee saved registers. let CalleeSavedRegisters = [ESI, EDI, EBX, EBP]; PrologueEpilogue inserter will then add store/loads to each register in this list that is modified. -- Alkis
2004 Jul 08
2
[LLVMdev] Callee saved register, almost
I've another problem. There's one register, gr6, which is used to return high part of return value for functions returning 64-bit values. For such functions, the register should not be saved, naturally. But when function does not return 64-bit value, then the register must be saved. How can I express this in .td file? - Volodya
2004 Jul 08
0
[LLVMdev] Callee saved register, almost
Vladimir Prus wrote: > I've another problem. There's one register, gr6, which is used to return > high part of return value for functions returning 64-bit values. For such > functions, the register should not be saved, naturally. > > But when function does not return 64-bit value, then the register must be > saved. How can I express this in .td file? Ok, I've managed
2019 Jun 25
3
Potential missed optimisation with SEH funclets
I’ve been experimenting with SEH handling in LLVM, and it seems like the unwind funclets generated by LLVM are much larger than those generated by Microsoft’s CL compiler. I used the following code as a test: void test() { MyClass x; externalFunction(); } Compiling with CL, the unwind funclet that destroys ‘x’ is just two lines of asm: lea rcx, QWORD PTR x$[rdx] jmp ??1MyClass@@QEAA at XZ