<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>The frontend supports the following, Target.i3:<br><br><br>  results_on_left => when the front-end is passing structures the return<br>                     result is the left-most parameter.  Otherwise, it is<br>                     the right-most parameter.<br><br>  standard_structs =><br>     TRUE => the front-end will take care of all structure passing:<br>       by VALUE parameters: callers pass the address of the structure<br>          and the callee copies it into a temporary.<br>       return results: the caller passes as the left-most or right-most<br>          parameter the address of the temporary that will hold the result<br>          and the callee copies the value there.<br>     FALSE =><br>       by VALUE parameters: the back-end is responsible.<br>          (ie. M3CG.T.Pop_struct will be called)<br>       return results: the caller passes as the left-most or right-most<br>          parameter the address of the temporary that will hold the result<br>          and the callee copies the value there.  The start_call, call,<br>          and exit_proc methods are called with t=Struct.<br><br><br><br><br>I want an additional mode.<br>I want no extra parameter for struct return.<br>My backend could easily pass and return them by value and hide the details.<br><br><br>TYPE StructReturn = [None, Left, Right];<br>?<br><br><br>Too much is wrapped up in standard_structs -- pass and return could/should be separate.<br><br><br>TYPE StructPass = [Value, Pointer];<br>?<br><br><br>I grant that really supporting this in the frontend might be a bit of work,<br>and there might be little point, as the code is all rarely used.<br><br><br>Maybe I should work on improving something else, e.g. scopes or global variables/segments.<br><br><br> - Jay<br>                                       </div></body>
</html>