I think it's a bad design that only Metal C supports GENASM. The z/OS
C/C++ compiler is the only C/C++ compiler that doesn't support inline
assembler and it's a PITA.
On 2/05/2014 9:08 AM, Phil Sidler wrote:
Martin,
Pretty sure this only works with Metal C. Inline assembly code requires the
GENASM compiler option which is only valid in combination with the METAL
option. Otherwise __asm is ignored. Personally, I think that is a bad design,
it should not be simply ignored but would at least generate a warning.
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/cbclr1b0/7.8
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/CBCUG1A0/4.53
See the end of this post for instructions on using the ibm-mail list server list. You'll get better response since only a few folks may be using the google mirror of the postings.
Cheers.
-- forwarded post --
Dear all,
I try to test using a __asm statement in my C++ program. I simply like to add
to values (x and y) and print this output.
But it will not do so. x and y is alway the same.
--- begin of code ---
// test_inline.C
#include <sstream>
#include <iostream>
#include <fstream>
using namespace std;
// MAIN
int main(int argc, char *argv[])
{
int rc=0;
int x=9;
int y=7;
printf("%s %s\nBEFOR: x=%d y=%d\n",__DATE__,__TIME__,x,y);
__asm ( "AR %0,%1\n" : "=r"(x) : "r"(y),"0"(x) ); // output, input, register define - none here done by compiler
printf("AFTER: x=%d y=%d\n",x,y);
exit(rc);
}
--- end of code ---
Make:
c++ -o test_inline -g -Wc,xplink -Wl,xplink test_inline.C
Now if I run this in the USS the output is as following
./test_inline
May 1 2014 09:25:31
BEFOR: x=9 y=7
AFTER: x=9 y=7
does anybody can give me a hint whats wrong here ?
Best Regards,
Martin
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN