Displaying 2 results from an estimated 2 matches for "c20800".
Did you mean:
20800
2009 Feb 12
6
[LLVMdev] fastcc, tail calls, and gcc
...hat is (a) marked as fastcc
(CallingConv::Fast); but (b) takes no arguments and returns 'void'?
The function type is this:
std::vector<const Type*> args; /* empty */
FunctionType *ft = FunctionType::get(Type::VoidTy, args, false);
The fastcc generated code ends with this:
c20800 ret $0x8
However, if I instead mark the very same function to use the usual
CallingConv::C calling convention, then the generated code ends
with this:
c3 ret
I assume the "ret 0x8" is meant to be the "callee pops args" portion
of the fastcc convention, but in th...
2009 Feb 12
0
[LLVMdev] fastcc, tail calls, and gcc
...lated questions.
> (2) Why does the x86-64 JIT backend generate a "ret $0x8" instruction
> to return from a fastcc function that is (a) marked as fastcc
> (CallingConv::Fast); but (b) takes no arguments and returns 'void'?
fastcc generated code ends with this:
> c20800 ret $0x8
> I assume the "ret 0x8" is meant to be the "callee pops args" portion
> of the fastcc convention, but in this case the function has no
> arguments (nor a return value), so why should 8 bytes be popped from
> the stack on return?
If i remember correctly th...