Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Ticket #67 (closed defect: fixed)

Opened 11 years ago

Last modified 11 years ago

Implement D calling convention

Reported by: lindquist Assigned to: lindquist
Priority: minor Milestone:
Component: backend Version: Both
Keywords: Cc:

Description

having real support for the D calling convention from the spec would get us one step closer to LLVMDC being a drop-in replacement for DMD.

Change History

09/11/08 19:12:52 changed by lindquist

float, double, real, cfloat, cdouble and creal ABI should be correct for the most part now. At leasts returning them on the x87 FPU stack on x86 is implemented now.

10/22/08 15:41:27 changed by lindquist

dynamic arrays are handled properly since [715]

10/22/08 19:52:20 changed by lindquist

delegates now follow ABI as well

10/22/08 22:37:45 changed by lindquist

First param (except structs that would fit) are no passed in EAX on x86-32 since rev [720]

Only thing missing now is passing arguments formal in the correct (opposite of now) order, and handle the cases where struct are passed/returned in EAX

10/25/08 04:06:28 changed by lindquist

  • priority changed from major to minor.

Parameter order should be correct for x86-32 since rev [723]

only struct in registers missing now :)

11/12/08 05:49:09 changed by lindquist

  • version set to Both.

02/01/09 23:40:09 changed by lindquist

  • owner set to lindquist.
  • component set to backend.

struct return convention is only specified for Windows now, this means we're only missing small structs in registers. At least as long as Windows isn't supported :)

02/04/09 00:13:08 changed by lindquist

since rev [930] the appropriate struct in passed inreg, but it looks like llvm doesn't always pass it in a reg regardless :/ this is unfortunate. I think we might need to manually convert it to a i32 or something like that to be sure.

02/04/09 16:43:55 changed by ChristianK

I tried it with 1, 2 and 4 byte structs and they were passed in a register. Can you give me your test case?

02/04/09 17:40:58 changed by ChristianK

  • status changed from new to closed.
  • resolution set to fixed.

Should be fixed in [938]

Copyright © 2008, LDC Development Team.