In a previous post I showed how to use the operand syntax of inline asm to eliminate the need for explicit loads and stores in the asm code. I wound up with an asm like this... asm ( "addi %0,%0, 88 \n" : " +r" (x) : ); However, there is a subtle problem with this code that is often overlooked (including by myself) -- the dreaded r0 problem. Certain instructions on Power have special semantics when one of the register input operands is r0. For example, in the case of addi, if the second... [More]
Get the highlights of the new and enhanced features in XL C/C++ Version 12.1,
including support of language features that enable users to port code easily
when moving to IBM Power Systems, as well as improved compilation time at
commonly used optimization levels. This article is for those who have some
experience with previous versions of XL C/C++. Read more .
Check out this recorded webinar by IBM Systems Magazine about Smart Tools on IBM i, AIX, and Linux for Faster Time to Market Get an early look at the
next version of Rational's offerings for Power Systems. New advancements
in compilers and significantly enhanced development tools will give
your organization a competitive advantage! Listen to the replay .
Looking to see and learn about the latest compiler enhancements in XL C/C++ on AIX and Linux. Download a trial. Here is quick recap of some of the highlights of these new compilers: Compliance to ISO programming language standards including C99 and C++2003,
emerging support for C11 and addition support for C++11, the latest standards
for the C and C++ programming languages Support for the OpenMP 3.1 industry specification Compile time performance and scalability improvements Enhancements to the diagnostic reports that can help identify... [More]
Check out all the information about the latest release of XL C for AIX, XL C/C++ for AIX, and XL C/C++ for Linux. You can get a summary of each release by product as well as all the announcement details. See What's new in the release including enhancements to improve application performance and programmer productivity. For all the details about the XL C and XL C/C++ announcements, see these resources. And don't forget our Webinar and Innovate2012 where you will hear lots more about the latest compilers. Webinar: Smart Tools on IBM i, AIX,... [More]
The May 2012 Compiler PTFs for XL C/C++ for AIX, V10.1 are now available at the following links and on Fix Central: May 2012 PTF for XL C for AIX, V10.1 May 2012 PTF for XL C/C++ for AIX, V10.1 Can't find the updates for your compiler? Check out our C/C++ compiler latest update page here .
The basic premise of inline asm is to be able to write assembly code within your C or C++ program (using asm operands to connect the asm code to the parent program), delegate the translation of that assembly to the compiler and/or the system assembler, and consequently have the resulting machine code embedded within your program at the location you specified. The reasons for using inline asm can be many, but one reason can be to utilize special instructions are too new or too novel for either the compiler or assembler to know about. That seems... [More]
The April 2012 Compiler PTFs for XL C/C++ for AIX, V11.1 are now available at the following links and on Fix Central: April 2012 PTF for XL C for AIX, V11.1 April 2012 PTF for XL C/C++ for AIX, V11.1 Can't find the updates for your compiler? Check out our C/C++ compiler latest update page here .
This posting concerns outputs which are assigned registers that may overlap with inputs. Consider this inline asm that uses addc and adde in order to accomplish 128 bit arithmetic... asm ("addc %0, %2, %3 \n" "adde %1, %4, %5 \n" : "=r"(xl),"=r"(xu) : "r"(yl),"r"(zl),"r"(yu),"r"(zu)); In this example all the inputs and outputs are unsigned longs. Unfortunately, although it looks pretty straightforward, there is a potentially... [More]
The April 2012 PTF for XL C/C++ Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0 is now available at the following links and on Fix Central : April 2012 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0 Can't find the updates for your compilers? Check out our C/C++ compilers latest updates page here .
If you use zOS and applications running zOS as frequent as I do, you probably have defined best-scenarios possible to perform repeating tasks [as I have]. One of the things that I often have to do on a daily basis is to investigate and debug application errors and often the first lead I have into what the root cause maybe is the output and/or error messages. Just in case some of you may not know about this online facility that lets you look up explanations for the IBM messages, as well as for some system abends and codes, I provide a link... [More]
Hi. This is the first posting in what I hope to be a continuing blog on tips and tricks for inline assembly – a.k.a. asm – which is a way of inserting assembly language into your C and C++ programs. In this blog I won’t be covering basic syntax and semantics (you can get that by consulting a DeveloperWorks article – link at the end), but rather will focus on some of the trickier aspects of using inline asm in your programs. My primary focus will be on the Power architecture. Today I’ll start with tips for input and output operands. Imagine... [More]
No new Standard before 2017. That is the word from the C++ Standard meeting in Feb 2012, the first meeting since the ratification of C++11 after the Indiana meeting in August 2011. It must be the location, because it had over 60 attendees. We seem to have one of these every five years courtesy of PlumHall, although this one was paid for by Bloomberg. Thank you, John and Tom. The first and last thing on everyone's mind was when will the next Standard be? Will it be another 10 years? As this meeting included the reopening of the Evolution... [More]
To help you create more innovative products and services, faster than the competition, at lower cost and risk, IBM Rational helps you transform software design, development, and delivery. Innovate 2012, sponsored by Rational, is the event for software and systems innovation that is focused on helping you transform software delivery to accelerate better business outcomes.. We hope you will join us for Innovate 2012, in Orlando, Florida, June 3-7, 2012. Top 5 Reasons to Attend include: • Over 400 technical sessions across 23 tracks focused on... [More]
Mission-critical applications are the lifeblood for most large enterprises, which often rely on mainframes for data and transaction processing. While these systems are crucial for business operations, many organizations perceive them as a costly burden keeping enterprises from innovating and remaining competitive. Nothing could be further from the truth. Legacy applications contain a wealth of knowledge and logic that can be leveraged to push businesses into surprising new directions. The problem many IT departments face, though, is learning... [More]