Adjustor thunks and variadic arguments.

Daniel Murphy via Digitalmars-d digitalmars-d at puremagic.com
Thu Apr 9 04:20:48 PDT 2015


"Iain Buclaw via Digitalmars-d"  wrote in message 
news:mailman.1364.1428563414.3111.digitalmars-d at puremagic.com...

> If under the same object file, you can happily emit:
>
> sub    offset, %thisreg
> jmp    method
>
> But if doing separate compilation, many targets to not support doing
> such operations across section boundaries.  So a more general/agnostic
> way to go about it is by copying all arguments, adjusting the 'this'
> pointer and calling target method at the codegen level.  This works so
> long as you are not dealing with a variadic method (ie:
> std.stream.Stream.printf)

They don't support jumping across section boundaries?  But they do support 
calling?

Anyway it sounds like

sub offset, %thisreg
call method
ret

would do it 



More information about the Digitalmars-d mailing list