Mercurial > pub > dyncall > dyncall
comparison dyncall/dyncall_aggregate_x64.c @ 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 | a73a5cd50c19 |
children | eef302b7a58d |
comparison
equal
deleted
inserted
replaced
545:ca28e9e3c644 | 546:ba70fb631bea |
---|---|
66 DCsize offset = base_offset + f->offset; | 66 DCsize offset = base_offset + f->offset; |
67 | 67 |
68 /* field outside of qword at index? */ | 68 /* field outside of qword at index? */ |
69 if(offset >= (qword_offset + DC_ONE_8BYTE) || (offset + f->size * f->array_len) <= qword_offset) | 69 if(offset >= (qword_offset + DC_ONE_8BYTE) || (offset + f->size * f->array_len) <= qword_offset) |
70 continue; | 70 continue; |
71 | |
72 /* if field is unaligned, class is MEMORY */ | |
73 if(f->alignment && (offset % f->alignment) != 0) | |
74 return SYSVC_MEMORY; | |
71 | 75 |
72 DCuchar new_class = SYSVC_NONE; | 76 DCuchar new_class = SYSVC_NONE; |
73 | 77 |
74 switch (f->type) { | 78 switch (f->type) { |
75 case DC_SIGCHAR_BOOL: | 79 case DC_SIGCHAR_BOOL: |