comparison dyncall/dyncall_aggregate.h @ 546:ba70fb631bea

x64: * support for non-standard aggr-by-value packing (#pragma pack, etc.) * callbacks: handling callconv prefixes in signature
author Tassilo Philipp
date Tue, 31 May 2022 19:29:34 +0200
parents 71c884e610f0
children
comparison
equal deleted inserted replaced
545:ca28e9e3c644 546:ba70fb631bea
47 47
48 #endif 48 #endif
49 49
50 50
51 typedef struct DCfield_ { 51 typedef struct DCfield_ {
52 DCsize offset, size, array_len; 52 DCsize offset, size, alignment, array_len;
53 DCsigchar type; 53 DCsigchar type;
54 const DCaggr* sub_aggr; 54 const DCaggr* sub_aggr;
55 } DCfield; 55 } DCfield;
56 56
57 struct DCaggr_ { 57 struct DCaggr_ {
58 DCsize size, n_fields; 58 DCsize size, n_fields, alignment;
59 #if defined(DC_UNIX) && defined(DC__Arch_AMD64) 59 #if defined(DC_UNIX) && defined(DC__Arch_AMD64)
60 DCuchar sysv_classes[DC_SYSV_MAX_NUM_CLASSES]; /* !code relies on this to be 64 bits! */ 60 DCuchar sysv_classes[DC_SYSV_MAX_NUM_CLASSES]; /* !code relies on this to be 64 bits! */
61 #endif 61 #endif
62 DCfield fields[]; 62 DCfield fields[];
63 }; 63 };