view test/callback_suite_aggrs/config.lua @ 533:71c884e610f0

- integration of patches from Raphael Luba, Thekla, Inc.: * integration of aggregate-by-value (struct, union) support patch for x64 (win and sysv) * windows/x64 asm additions to specify how stack unwinds (help for debuggers, exception handling, etc.) * see Changelog for details - new calling convention modes for thiscalls (platform agnostic, was specific before) * new signature character for platform agnostic thiscalls ('*' / DC_SIGCHAR_CC_THISCALL) - dcCallF(), dcVCallF(), dcArgF() and dcVArgF(): * added support for aggregates-by-value (wasn't part of patch) * change that those functions don't implicitly call dcReset() anymore, which was unflexible (breaking change) - added macros to feature test implementation for aggregate-by-value and syscall support - changed libdyncall_s.lib and libdyncallback_s.lib order in callback test makefiles, as some toolchains are picky about order - doc: * man page updates to describe aggregate interface * manual overview changes to highlight platforms with aggregate-by-value support - test/plain: replaced tests w/ old/stale sctruct interface with new aggregate one
author Tassilo Philipp
date Thu, 21 Apr 2022 13:35:47 +0200
parents cd46e111bc4c
children 5e1002095afa
line wrap: on
line source

-- user config for rand-sig.lua:
minargs      = 0
maxargs      = 16
minaggrfields= 0    -- 0 allows for empty structs/unions
maxaggrfields= 12
maxarraylen  = 16   -- see *)
arraydice    = 40   -- how often to turn a member into an array (1 out of arraydice-times)
maxaggrdepth = 3    -- max nesting depth of aggregates, 1 = no nesting
reqaggrinsig = true -- require that every generated signature has at least one aggregate
ncases       = 400
types        = "BcsijlCSIJLpfd{}<>"  -- types to use; use '{','}' for structs, '<','>' for unions
rtypes       = nil                   -- supported return types (set to nil to use "v"..types)
seed         = 1996

-- *) note some callconvs pass structs via regs, so using big numbers here will
--    reduce those cases; however special alignment rules are specified in some
--    ABIs for bigger arrays, which is also worth testing



-- Notes: specify types more than once to increase relative occurance, e.g.:

-- this favors non-aggregate args, especially ints (and also increases avg num of aggregate fields):
--types       = "Bccssiiiiijjllpfd{}"

-- this heavily favors nested structs, while not having any union:
--types       = "Bcsijlpfd{{{{{{}"

-- this heavily favors flat and short/empty aggregates:
--types       = "Bcsijlpfd{}}}}}}<>>>>>"



-- user config for mk-cases.lua

-- force aggregate packing, 0=off, pos values set fixed packing, neg values
-- set a random power-of-2 packing per aggregate, within [1,abs(aggrpacking)]
aggrpacking = 0
aggrpackingseed = seed