× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



IBM occasionally moves certain instructions (from HLL's) into MI built-ins
to improve performance. Obviously memcpy() is called a lot in C and to
improve performance, they made it an MI instruction too. 
There is also CPYBYTES() which is twice as fast at copying bytes of data
from one location to another as memcpy or cpybla, but the cost of that is
that you can't have any embedded pointers in the data being copied.
-Bob


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Christen, Duane J.
Sent: Thursday, September 16, 2004 11:22 AM
To: 'RPG programming on the AS400 / iSeries'
Subject: RE: Builtins

Keith,

I generally check the MI manual for builtins when dealing with "system APIs"
but I had never thought that "language specific" APIs would also be built
in. 

Thanks for reminding me to look outside the box, I need that several times a
day...

Duane Christen


> -----Original Message-----
> From: Keith Carpenter [mailto:CarpCon@xxxxxxx]
> Sent: Thursday, September 16, 2004 9:58 AM
> To: RPG programming on the AS400 / iSeries
> Subject: Re: Builtins
> 
> 
> Duane,
> 
> The V5R3 info center has some of the information you are asking for
> http://publib.boulder.ibm.com/infocenter/iseries/v5r3/ic2924/index.htm
> 
> Look under: Programming, APIs, MI programming, Machine interface
> instructions.
> 
> ILE built-ins are a subset of MI instructions.  Of the MI instructions
> listed, the ones that are available as built-ins are 
> documented as having a
> "built-in number" along with the interface for "bound program access".
> 
> Looking up MEMCPY it describes the "bound program access" as
> 
> Built-in number for MEMCPY is 15.
> MEMCPY (
>         target_string   : address of aggregate(*)
>         source_string   : address of aggregate(*)
>         copy_length     : unsigned binary(4) value which specifies the
>                           number of bytes to copy
> ) :   space pointer(16) to the target string
> 
> 
> The interface happens to be the same as the C library version 
> of memcpy.  If
> you don't have a RPG prototype, this will work.
> 
> d memcpy          pr              *   extproc('__memcpy')
> d target                          *   value
> d source                          *   value
> d length                        10u 0 value
> 
> 
> The missing piece of information is determing the actual 
> builtin name to use
> (ie. "__memcpy").
> 
> 
> 
> Keith
> 
> 
> 
> 
> 
> 
> > Bob,
> >
> > Earlier this week, or last week, you mentioned using the builtin for
> memcpy
> > (__memcpy) rather than the C library function. I could find no
> description,
> > in the C/C++ Run-time Functions manual, of which functions 
> are builtin,
> and
> > looking through the info-center search did'nt help much 
> either. Is there a
> > list of builtins somewhere or is there a rule of thumb in 
> defining them?
> >
> >
> > Thanks
> >
> > Duane Christen
> 
> --
> This is the RPG programming on the AS400 / iSeries (RPG400-L) 
> mailing list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
> 



NOTICE: This electronic mail transmission may contain confidential
information and is intended only for the person(s) named.  Any use, copying
or disclosure by any other person is strictly prohibited. If you have
received this transmission in error, please notify the sender via e-mail.



--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.