<HTML>
<style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>I didn't mean for a particular intrinsic to be cross-platform, but implementing intrinsics for every single instruction on a particular platform, and then doing the same for the other platforms supported by Free Pascal - that is, composing intrinsics for the 1000+ instructions on x86_64, testing to see if they properly expand into the assembler commands that they're advertised to do, and then doing the same for ARM etc.  Hence the maintenance factor.<br>
<br>
Gareth aka. Kit<br>
 <br>
<br>
<span style="font-weight: bold;">On Mon 18/03/19 07:03 , "Sven Barth" pascaldragon@googlemail.com sent:<br>
</span><blockquote style="BORDER-LEFT: #F5F5F5 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT:0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px"><div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">J. Gareth Moreton <<a href="javascript:top.opencompose('gareth@moreton-family.com','','','')">gareth@moreton-family.com</a>> schrieb am So., 17. März 2019, 22:26:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> 
<div>I do have a slight concern when it comes to intrinsic support, because support will be needed to be added for all platforms, (virtually) all instructions and tested to see if they expand into the expected instruction, along with determining what happens when you string several intrinsics together (i.e. passing the result of one such intrinsic into the actual parameter of another).  I want to say that it will require just as much, if not more, maintenance than permitting inlined assembler routines under limited circumstances, including adding intrinsics for every individual platform's assembly language and showing that it works.</div>
</blockquote></div></div><div dir="auto"><br>
</div><div dir="auto">No, intrinsics can be CPU specific. So if you'd use the intrinsic for AESENC then you'd get a compile time error on non-x86 CPUs. No need to try to implement them for all platforms. </div><div dir="auto"><br>
</div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> 
</blockquote></div></div></div> 
 

</blockquote></HTML>