[PATCH] D12498: X86: add an interrupt calling convention
Peter Marheine via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 6 11:37:27 PST 2015
tari added a comment.
> Peter, how do you suggest to go further from here? Do you want to make the needed changes and upload a new patch?
I can revise this patch further, but it's rather low on my priority list right now.
================
Comment at: lib/Target/X86/X86CallingConv.td:711
@@ -710,1 +710,3 @@
+def CC_X86_Intr : CallingConv<[
+ // Error codes aren't necessarily 32 bits wide, but fill a 32-bit slot.
----------------
aaboud wrote:
> tari wrote:
> > aaboud wrote:
> > > I think we need to define argument convention for x86-32 and another for x86-64.
> > > X86-32: the arguments need to have size 4 and alignment 4
> > > X86-64: the arguments need to have size 8 and alignment 8
> > >
> > > Also, why do we need to promote types to i32? Do we expect to have smaller types? Should not that be considered as illegal interrupt?
> > According to the AMD documentation, the error code in long mode (x86-64) is still 32 bits wide, but is padded to 64 bits when placed on the stack. So the handling of the error code from a user's perspective is the same in both 32- and 64-bit code.
> >
> > Arguments that are not 32 bits wide should probably be made illegal, yes.
> OK, I understand why error code in x86_64 configuration should be also with size 4 (and with alignment 8)
> But I still think that in x86_32 configuration the alignment should be 4. There is no need to consume more memory than actually needed, right?
>
> X86-32: the arguments need to have size 4 and alignment 4
> X86-64: the arguments need to have size 4 and alignment 8
Yes, that sounds correct.
Repository:
rL LLVM
http://reviews.llvm.org/D12498
More information about the llvm-commits
mailing list