> From tests/test/cg/tvectorcall1.pp > > {$PUSH} > {$CODEALIGN RECORDMIN=16} > {$PACKRECORDS C} > type > TM128 = record > case Byte of > 0: (M128_F32: array[0..3] of Single); > 1: (M128_F64: array[0..1] of Double); > end; > {$POP} > > (This declaration mimics how __m128 is defined in Microsoft Visual C++) > > Gareth aka. Kit
And even this solution does not support dynamic arrays with scalars, right? {$PUSH} {$CODEALIGN RECORDMIN=32} {$PACKRECORDS C} type TIntArray = array of Integer; {$POP} var v:TIntArray; begin SetLength(v,100); Writeln(NativeInt(Pointer(v)) and 31); // writes 16 instead of 0 end. -- Regards, Denis Golovan _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel