<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: how to call a function by aCC inline assembly in Operating System - HP-UX</title>
    <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5479769#M640100</link>
    <description>&lt;P&gt;&amp;gt;&amp;gt;you could just have the 8 * 2 IFs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Two IF tests but three cases.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;int and pointer, total 4 types.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Integral and pointer can be treated almost the same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 11 Jan 2012 07:37:57 GMT</pubDate>
    <dc:creator>Dennis Handly</dc:creator>
    <dc:date>2012-01-11T07:37:57Z</dc:date>
    <item>
      <title>how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426573#M640081</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to call a function by aCC inline assembly, but can't find a&amp;nbsp;pseudo-function which can let me to make a call (some thing like _Asm_call).&lt;/P&gt;&lt;P&gt;any suggestions will be great help!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Dec 2011 06:54:17 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426573#M640081</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2011-12-23T06:54:17Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426577#M640082</link>
      <description>&lt;P&gt;if any one can give out a sample code of call a function by aCC inline assembly of IA64, it will be more better: include push parameters, call, and return.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Dec 2011 06:57:45 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426577#M640082</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2011-12-23T06:57:45Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426627#M640083</link>
      <description>&lt;P&gt;&amp;gt;I want to call a function by aCC inline assembly,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can't and there is no need to do so.&amp;nbsp; You do a normal call and intersperse your inline assembly _Asm_ calls.&lt;/P&gt;&lt;P&gt;You might want to explain what you are trying to do?&lt;/P&gt;</description>
      <pubDate>Fri, 23 Dec 2011 08:12:55 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426627#M640083</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-12-23T08:12:55Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426645#M640084</link>
      <description>&lt;P&gt;Hi Dennis,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="Apple-style-span"&gt;thanks for your reply. I need to implement a call function interface. the method define is:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="Apple-style-span"&gt;void* callfunction(int *data, int* type, int count, void* function_address). data: this array contains the parameters which will be passed to called function with the address: function_address, count: &amp;nbsp;is the len of data, type: indicate the return type, can be int, float, double, long.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="Apple-style-span"&gt;so I need to implement by assembley, can't use some thing like: function_address(.....) to call directly.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;seems no inline asssembly can reach arm, but assembly can. can you give me an example of how to implement callfunction?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so thanks&lt;/P&gt;</description>
      <pubDate>Fri, 23 Dec 2011 08:23:18 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426645#M640084</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2011-12-23T08:23:18Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426807#M640085</link>
      <description>&lt;P&gt;&amp;gt;I need to implement a call function interface.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Are you writing some kind of interpreter?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;void* callfunction(int *data, int *type, int count, void* function_address).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What is this function returning in the void*?&lt;/P&gt;&lt;P&gt;The proper declaration for a generic function is: void (*function_address)(void)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;data: this array contains the parameters which will be passed to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Are there count int parms by value?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;so I need to implement by assembly,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can't do this in assembly either.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;can't use some thing like: function_address(.....) to call directly.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can but you need a doubly nested switch, one for the return type and one for the data parms.&lt;/P&gt;&lt;P&gt;For each return type and parms, you'll need to cast function_address to that function.&lt;/P&gt;&lt;P&gt;switch (*type) {&lt;/P&gt;&lt;P&gt;case T_int:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; int ii = ((int (*)(int))function_address)(data(0));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not sure how you are encoding your data array and count?&lt;/P&gt;</description>
      <pubDate>Fri, 23 Dec 2011 10:37:15 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5426807#M640085</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-12-23T10:37:15Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5429851#M640086</link>
      <description>&lt;P&gt;&amp;gt;&amp;nbsp;switch (*type) {&lt;/P&gt;&lt;P&gt;&amp;gt; case T_int:&lt;/P&gt;&lt;P&gt;&amp;gt; &amp;nbsp; int ii = ((int (*)(int))function_address)(data(0));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;this is exactly the usage of this function, not the implementation. it needs return void* because it can return int, long, double, float, or a pointer. void* can be cast to any type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"type" array indicates the type of data element, which can be int, float, long, double, pointer.&lt;/P&gt;&lt;P&gt;"count" indicates the length of type array.&lt;/P&gt;&lt;P&gt;"data" is an int array, but it is only a memory block, which will hold data format: int, float, long, double, pointer, according to the relative type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the aim of data, type, and count is that: we can get input parameters for function whose address is function_address. &amp;nbsp;the design of&amp;nbsp;callfunction is to call any functions with differenet number &amp;amp; type of paramters.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;because IA-64 use registers from r32 as in/local/out registers, and pass parameters by out registers, it is hard to let callfunction to call any number parameters functions. so I limit the called funtions' params' number to 4. that means called function at most has 4 parameters.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for your reply.&lt;/P&gt;&lt;P&gt;I have implemented callfunction by asm.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2011 03:17:01 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5429851#M640086</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2011-12-28T03:17:01Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5429859#M640087</link>
      <description>&lt;P&gt;oh,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;nbsp;switch (*type) {&lt;/P&gt;&lt;P&gt;&amp;gt; case T_int:&lt;/P&gt;&lt;P&gt;&amp;gt; &amp;nbsp; int ii = ((int (*)(int))function_address)(data(0));&lt;/P&gt;&lt;P&gt;it is calling the function whose address is function_address. but the calling function's params' number is not fixed, it can have no param, or many. so I get no idea that I can directly call in this way.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2011 03:21:25 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5429859#M640087</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2011-12-28T03:21:25Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5429997#M640088</link>
      <description>&lt;P&gt;&amp;gt;It needs return void* because it can return int, long, double, float, or a pointer. void* can be cast to any type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A void* can only be cast to a pointer to objects, not double/float, etc.&lt;/P&gt;&lt;P&gt;And if cast to a pointer, where is it going to point, if the function really returns an int?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;the aim of data, type and count is that: we can get input parameters for function whose address is function_address. &amp;nbsp;the design of&amp;nbsp;callfunction is to call any functions with different number &amp;amp; type of parameters.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unless you have a more complex description of this, you can't do it with just those three.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;because IA-64 use registers from r32 as in/local/out registers, and pass parameters by out registers, it is hard to let callfunction to call any number parameters functions. So I limit the called functions' parms' number to 4. That means called function at most has 4 parameters.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The max is 8.&amp;nbsp; The rest are on the stack.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;but the calling function's parm number is not fixed, it can have no parm or many.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You must have a switch for each possible case.&amp;nbsp; Or always pass 8 parms.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2011 06:50:12 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5429997#M640088</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-12-28T06:50:12Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5441943#M640089</link>
      <description>&lt;P&gt;&amp;gt;&amp;nbsp;A void* can only be cast to a pointer to objects, not double/float, etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;it is not true. void* is a pointer, and a pointer can be cast by forcely to any other types. only need they have the same bytes. for example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void* p = ...;&lt;/P&gt;&lt;P&gt;int ip = (int)(long)p; // for 64bit, pointer is 8 bytes, but int only 4 bytes, so first cast to long, then to int. but will lose 0x60000000000000000000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;nbsp;if cast to a pointer, where is it going to point, if the function really returns an int?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;it will truely cause an error under 64bit, but is okie under 32bit. when call a function, accroding to the return type, it will use the different return value funtion. if return type is float, float returning function will be called, e.g.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;nbsp;The max is 8.&amp;nbsp; The rest are on the stack.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;this is useful. thanks. :-)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;nbsp;You must have a switch for each possible case.&amp;nbsp; Or always pass 8 parms.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;correctly. that is the reason why I need assembly. because directly call as you suggested &amp;nbsp;can't reach this aim. because of different number of params.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for your great help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jan 2012 05:15:47 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5441943#M640089</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-09T05:15:47Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5441951#M640090</link>
      <description>what I have done is this: according to the number of params of called function, I use a switch to every case. but limit the number of params to 4 at most</description>
      <pubDate>Mon, 09 Jan 2012 05:18:41 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5441951#M640090</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-09T05:18:41Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5441959#M640091</link>
      <description>but now, I think I can let it has full function: allow to calling function with any number of parameters</description>
      <pubDate>Mon, 09 Jan 2012 05:22:59 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5441959#M640091</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-09T05:22:59Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5442921#M640092</link>
      <description>&lt;P&gt;&amp;gt;it is not true. void* is a pointer and a pointer can be cast by forcedly to any other types. only need they have the same bytes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is a reinterpret_cast and implementation defined and so non-portable.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;that is the reason why I need assembly. because directly call as you suggested can't reach this aim. because of different number of parms.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;No, assembly has the same problem, unless dynamically generated.&amp;nbsp; And you can pass more parms than are used.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt; allow to calling function with any number of parameters&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You would need a fixed maximum.&amp;nbsp; And if you have structs by value, you would have to handle that too.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jan 2012 21:14:06 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5442921#M640092</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2012-01-09T21:14:06Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5448629#M640093</link>
      <description>&lt;P&gt;&amp;gt;&amp;nbsp;No, assembly has the same problem, unless dynamically generated.&amp;nbsp; And you can pass more parms than are used.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;seems yes. I find that assembly of Itanium is more diffcult than X86. it uses out registers for int &amp;amp; pointer parameters, f registers for float &amp;amp; double parameters. if I want to let it call function with any params types and any number of params, it is seems hard. but if I use stack, can I get this aim?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;also I'm agree with that passing more params, and group the same type params: double group, float group, int group, pointer group. but this seems still not enough.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can only use 8 f registers? if that is true, can I use stack to passing more float &amp;amp; double params?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2012 04:55:10 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5448629#M640093</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-10T04:55:10Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5449015#M640094</link>
      <description>&lt;P&gt;&amp;gt;if I want to let it call function with any parms types and any number of parms. &amp;nbsp;But if I use stack, can I get this aim?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is no stack.&amp;nbsp; You must pass the first 8 parms in the appropriate registers.&amp;nbsp; Then you must pass the rest in the parm area in the stack frame.&amp;nbsp; And you really can't do "any", only a fixed max.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;group the same type parms: double group, float group, int group, pointer group. But this seems still not enough.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Not sure what you mean by group?&amp;nbsp; There are either GR or FR parms.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;I can only use 8 f registers? Can I use stack to passing more float &amp;amp; double parms?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, there are only 8.&amp;nbsp; The rest are in the stack frame.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2012 05:06:18 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5449015#M640094</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2012-01-10T05:06:18Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5451017#M640095</link>
      <description>&lt;P&gt;&lt;SPAN class="login-bold"&gt;Dennis, thanks again for your reply. it gives me great help!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="login-bold"&gt;some more I find is that: no matter what kind registers I use to pass params, at most 8 can be used. but what I don't know is how to operate stack frame.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="login-bold"&gt;can use give me an simple example that how to create stack frame (if needed), and put the params into it.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="login-bold"&gt;so thanks.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2012 05:58:57 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5451017#M640095</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-10T05:58:57Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5454011#M640096</link>
      <description>&lt;P&gt;thanks for your help. I have implemented, the max called function param can be 8, under both 32bit &amp;amp; 64bit mode. although it is not perfact, because it can't call function that has params more than 8.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;please help me: how to operate stack frame?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2012 07:43:03 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5454011#M640096</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-10T07:43:03Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5470523#M640097</link>
      <description>&lt;P&gt;&amp;gt;but what I don't know is how to operate stack frame.&lt;/P&gt;&lt;P&gt;&amp;gt;can you give me an simple example that how to create stack frame (if needed), and put the parms into it.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Take a look at the -S output of a function that has more than 8 parms.&amp;nbsp;&amp;nbsp; Also look at the caller.&lt;/P&gt;&lt;P&gt;Here is where doing it in the compiler helps.&lt;/P&gt;&lt;P&gt;Though if you have floating point, you would need a switch of 3 ** 8 to handle all of the combinations of integral, float and double parms.&amp;nbsp; In assembly you could just have the 8 * 2 IFs.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2012 18:00:34 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5470523#M640097</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2012-01-10T18:00:34Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5479695#M640098</link>
      <description>&lt;P&gt;&amp;gt;&amp;nbsp;Take a look at the -S output of a function that has more than 8 parms.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks. it is really a wonderful idea!&lt;/P&gt;</description>
      <pubDate>Wed, 11 Jan 2012 06:23:09 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5479695#M640098</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-11T06:23:09Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5479701#M640099</link>
      <description>&lt;P&gt;&amp;gt;&amp;nbsp;if you have floating point, you would need a switch of 3 ** 8 to handle all of the combinations of integral, float and double parms.&amp;nbsp; In assembly you could just have the 8 * 2 IFs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;actually, only 4 switch cases under 64bit &amp;amp; 32bit mode. because I need read double, float, int and pointer, total 4 types. all pointer type are the same: 4 bytes under 32bit and 8 bytes under 64bit. I only need to pass the pointer to called function. &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Jan 2012 06:27:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5479701#M640099</guid>
      <dc:creator>jufengyao</dc:creator>
      <dc:date>2012-01-11T06:27:27Z</dc:date>
    </item>
    <item>
      <title>Re: how to call a function by aCC inline assembly</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5479769#M640100</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;you could just have the 8 * 2 IFs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Two IF tests but three cases.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;int and pointer, total 4 types.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Integral and pointer can be treated almost the same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Jan 2012 07:37:57 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/how-to-call-a-function-by-acc-inline-assembly/m-p/5479769#M640100</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2012-01-11T07:37:57Z</dc:date>
    </item>
  </channel>
</rss>

