| Last change
 on this file since 3783 was             613, checked in by zap, 22 years ago | 
        
          | 
OS/2 specific issues in gcc.
 | 
        
          | 
              
Property                 cvs2svn:cvs-rev
 set to                 1.1
Property                 svn:eol-style
 set to                 native
Property                 svn:executable
 set to                 *
Property                 svn:keywords
 set to                 Author Date Id Revision | 
        
          | File size:
            886 bytes | 
      
      
| Rev | Line |  | 
|---|
| [613] | 1 | Features, caveats and tricks | 
|---|
|  | 2 | ---------------------------- | 
|---|
|  | 3 |  | 
|---|
|  | 4 | _Optlink | 
|---|
|  | 5 | -------- | 
|---|
|  | 6 |  | 
|---|
|  | 7 | The _Optlink implementation differs from VACPP implementation in the | 
|---|
|  | 8 | following ways: | 
|---|
|  | 9 |  | 
|---|
|  | 10 | o _Optlink is not enabled unless you enable optimization (-O). | 
|---|
|  | 11 |  | 
|---|
|  | 12 | o The floating-point parameters are always passed on stack, never in | 
|---|
|  | 13 | FPU registers. | 
|---|
|  | 14 |  | 
|---|
|  | 15 | Use _Optlink for VACPP compatibility only. If you want performance, | 
|---|
|  | 16 | use the __attribute__((regparm=x)), where x is the number of parameters | 
|---|
|  | 17 | to be passed in registers (_Optlink uses three). The 'regparm' calling | 
|---|
|  | 18 | convention is much more optimal than _Optlink: it does not allocate | 
|---|
|  | 19 | stack for parameters passed in registers (and does not store registers | 
|---|
|  | 20 | in that location right at the function entry), does not have the strange | 
|---|
|  | 21 | limit of 12 arguments ('eyecatcher bitfields') considered for conformance | 
|---|
|  | 22 | and other benefits. | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.