<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>