search for: adjust_trampoline

Displaying 6 results from an estimated 6 matches for "adjust_trampoline".

2011 Aug 25
0
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
...n, the pointer to pass for the 'nest' parameter, a > + // SRCVALUE for the trampoline and another for the nested function (allowing > + // targets to access the original Function*). It produces a token chain as > + // output. > + INIT_TRAMPOLINE, > + > + // ADJUST_TRAMPOLINE - This corresponds to the adjust_trampoline intrinsic. > + // It takes a pointer to the trampoline and produces a new pointer to the > + // intrinsic with platform-specific adjustments applied. "a new pointer to the intrinsic" -> "a new pointer" After all, it doe...
2011 Aug 23
2
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
Hi! Attached set of patches splits llvm.init.trampoline into an "init" phase and an "adjust" phase, as discussed on the "Go on dragonegg" thread. Thanks! -- Sanjoy Das http://playingwithpointers.com -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Split-intrinsics-and-DAG-nodes.patch Type: text/x-diff Size: 8808 bytes Desc:
2011 Aug 31
0
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
...rent address should be returned; otherwise @var{addr} should be returned unchanged. If this hook is not defined, @var{addr} will be used for function calls. @end deftypefn Perhaps you can come up with something based on that. When I initially implemented the trampoline stuff I probably documented adjust_trampoline (which was later removed), so maybe you could also dig that up. By the way an example of adjust_trampoline is ARM, which or's a 1 into the address of the trampoline. When the pointer is called the processor sees the 1 and puts itself into thumb mode. > --- a/lib/Transforms/InstCombine/Ins...
2011 Aug 29
3
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
Hi! Attached patches split init.trampoline into adjust.trampoline and init.trampoline, like in gcc. As mentioned in the previous mail, I've not made a documentation patch, since I'm not sure about what the documented semantics of llvm.adjust.trampoline should be. Thanks! -- Sanjoy Das http://playingwithpointers.com -------------- next part -------------- A non-text attachment was
2011 Aug 17
2
[LLVMdev] [PATCH] Go on dragonegg
Attached patches change how dragonegg lowers trampolines (for compatibility with Go). -- Sanjoy Das http://playingwithpointers.com -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Fix-the-trampolines-for-Go.patch Type: text/x-diff Size: 5108 bytes Desc: not available URL:
2011 Aug 18
0
[LLVMdev] [PATCH] Go on dragonegg
...way :) In fact this was how I first did it: two intrinsics, just like in GCC (probably the commits are still in the repository history). Chris asked me to combine them into one if possible, and I did but I now think that that was a mistake because they don't go naturally together: the call to adjust_trampoline can occur far away from the call to init.trampoline (eg: in a different function). As you can see in the dragonegg code, by doing evil tricks you can overcome this difference between the intrinsics, but as you also discovered it is fragile and broke the moment Go generalized the use of trampolines...