2010-03-26 22:44:43 -04:00
|
|
|
! Copyright (C) 2008, 2010 Slava Pestov.
|
2008-09-10 23:11:03 -04:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
USING: accessors kernel namespaces make math sequences layouts
|
2009-09-15 18:38:49 -04:00
|
|
|
alien.c-types cpu.architecture ;
|
2008-09-10 23:11:03 -04:00
|
|
|
IN: compiler.alien
|
|
|
|
|
2010-03-26 22:44:43 -04:00
|
|
|
: large-struct? ( type -- ? )
|
2009-02-12 07:25:07 -05:00
|
|
|
dup c-struct? [ return-struct-in-registers? not ] [ drop f ] if ;
|
2008-09-10 23:11:03 -04:00
|
|
|
|
|
|
|
: alien-parameters ( params -- seq )
|
|
|
|
dup parameters>>
|
2010-04-01 23:56:43 -04:00
|
|
|
swap return>> large-struct? [ struct-return-pointer-type prefix ] when ;
|
2008-09-10 23:11:03 -04:00
|
|
|
|
2010-03-26 22:44:43 -04:00
|
|
|
: alien-return ( params -- type )
|
2009-10-20 05:15:10 -04:00
|
|
|
return>> dup large-struct? [ drop void ] when ;
|