Displaying 6 results from an estimated 6 matches for "adjust_trampolin".
Did you mean:
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 do...
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/In...
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 trampoline...