mirror of
https://github.com/lifting-bits/mcsema
synced 2026-06-08 15:31:09 +00:00
fd3bce8809
* -abi-libraries can work with function returning complex types * -abi-libraries can now work with most functions taking complex numbers * Code style improvements * LLVM 3.5 compatibility * long double complex numbers are now correctly passed to external function * Code style changes, fix of float complex return for 64bit * Older version of llvm allow pointer to be casted to type it is pointing to * Add option to return integers in two registers if calling convention supports it. * Byval attribute fix, small code style changes * Floats are now correctly unpacked from xmm * Add test for basic calls into complex.h * Complex number test is now C-program * Adding new prebuilt CFGs for unit tests * WIP: Rework. Vector type is now one of the "simple" types. Easier code structure to support vector types in external libs * Skeleton for vector passing * WIP: Unpolished version of remake of constrant tables. Add constraint table also for return variables * Code style changes, some small reworks. * Incompatible return type now ends with error message instead of crash * Code style * Tables with information about registers used by different calling conventions are created only once. * Changed severity of log, default for reg vectors are now xmm * Win64 now uses only 4 registers to transfer arguments * Code style improvements * CallingConventionInfo now initialize ConstraintTable/s for specific gArch * Remove kNoArgs since ConstraintTable can now use std::vector::size() * Fixed iteration of ext_func arguments * 32bit can now return i64 via two registers * Code style