About
Docs
Files
Support
Index

Essentials
AutoDocs
Library functions
Cooperate
Process mastering
Debug
Own debugging kit
FGE
Smart modeid pick
Loader
Shared lib. loader
Macros
Helper macros
Structs
All the structures
Logs
Library changelogs
Tools
Progs baked inside

MACROS
LP2IEEE()A
QBASEASSIGN()A
QBASEASSIGN2()A
QBASEDECL()A
QBASEDECL2()A
QBASEJUMPTAB()A
QBASELOCAL()A
QBASEPOINTER()A
QBASERESOLVE()A
QBASESLOTS()A
QDEV_HLP_ASMDIVU()A
QDEV_HLP_ASMMULU()A
QDEV_HLP_DELTAITER()A
QDEV_HLP_DELTASCAN()A
QDEV_HLP_DFUNC()A
QDEV_HLP_DIVUQUAD()A
QDEV_HLP_DSTOTV()A
QDEV_HLP_GETREG()A
QDEV_HLP_ISLISTEMPTY()A
QDEV_HLP_ITERATE()A
QDEV_HLP_MULUQUAD()A
QDEV_HLP_NOINTSEC()A
QDEV_HLP_NOSWITCH()A
QDEV_HLP_PROCDECL()A
QDEV_HLP_PROCEXIT()A
QDEV_HLP_REMOTE()A
QDEV_HLP_RESGLOB()A
QDEV_HLP_SETREG()A
QDEV_HLP_TASKDECL()A
QDEV_HLP_TVTODS()A
REGARG()A
REGVAR()A
__LOADA4()A
__SAVEA4()A
QDEVDEBUG()P
QDEVDEBUGIO()P
MFADD()I
MFCGE()I
MFCLE()I
MFCMP()I
MFDIV()I
MFFIX()I
MFFLT()I
MFMUL()I
MFSUB()I
MFVALUE()I
QDEV_HLP_ABS()I
QDEV_HLP_ADDTV()I
QDEV_HLP_ASMALIAS()I
QDEV_HLP_ASMENTRY()I
QDEV_HLP_BADDR()I
QDEV_HLP_BYTESPERROW()I
QDEV_HLP_EQUALIZEUC()I
QDEV_HLP_EQUALIZELC()I
QDEV_HLP_E_DIVULONG10()I
QDEV_HLP_FFPTOIEEE()I
QDEV_HLP_FLIP()I
QDEV_HLP_FNV32CSUM()I
QDEV_HLP_FNV32HASH()I
QDEV_HLP_IEEETOFFP()I
QDEV_HLP_LCOPYMEM()I
QDEV_HLP_LSHIFT64()I
QDEV_HLP_MAX()I
QDEV_HLP_MIN()I
QDEV_HLP_MKBADDR()I
QDEV_HLP_MKSTR()I
QDEV_HLP_MULU32X32()I
QDEV_HLP_N_DIVULONG10()I
QDEV_HLP_N_MULUXXX10()I
QDEV_HLP_NEG()I
QDEV_HLP_QUICKFILL()I
QDEV_HLP_SWAPQUAD()I
QDEV_HLP_POPCOUNT()I
QDEV_HLP_RASSIZE()I
QDEV_HLP_ROUNDPOW2()I
QDEV_HLP_RSHIFT64()I
QDEV_HLP_SUBTV()I
QDEV_HLP_SWAPLONG()I
QDEV_HLP_SWAPQUAD()I
QDEV_HLP_SWAPWORD()I



Q
D
E
V
_
H
L
P
_
L
C
O
P
Y
M
E
M
(
)

SOURCE: qdev_macros.txt 1.16 (12/09/2014) English

                                 INDEP - PUBLIC
 ----------------------------------------------------------------------------

   NAME

      QDEV_HLP_LCOPYMEM() - Fast memory copy macro for small
                            data.



   SYNOPSIS

      QDEV_HLP_LCOPYMEM(to, from, len);

      QDEV_HLP_LCOPYMEM(void *, void *, long);



   FUNCTION

      This macro allows to copy data upto 59 bytes in a fast
      way by being transformed into efficient assembly with
      super small overhead.



   INPUTS

      to   - Memory address where the data will be copied to.

      from - Memory address where the data will be read from.
             If this is contant then generated code may/will
             be even faster since it may be PC relative.

      len  - Size of the copy. Pass integer that is known at
             compilation time to benefit from this macro! If
             this value is not known then call to '_bcopy()'
             will be generated...



   RETURNS

      No output.



   BASES

      None.



   NOTES

      None.



   SEE ALSO

      QDEV_HLP_QUICKFILL()



   EXAMPLE

      ...

      #define TEXT "Compile and disassemble :)"
      /*            ^^^^^^^^^^^^^^^^^^^^^^^^^^
                    L   L   L   L   L   L   BBB  */
      void routine(void)
      {
        UBYTE buf[32];

        QDEV_HLP_LCOPYMEM(buf, TEXT, sizeof(TEXT));

        printf("%s\n", buf);
      }

      ...

      LC1:
        .ascii "Compile and disassemble :)\0"
      LC2:
        .ascii "%s\12\0"
        .even
        .globl _routine
      _routine:
        link a5,#-32
        movel LC1,a5@(-32)
        movel LC1+4,a5@(-28)
        movel LC1+8,a5@(-24)
        movel LC1+12,a5@(-20)
        movel LC1+16,a5@(-16)
        movel LC1+20,a5@(-12)
        moveb LC1+24,a5@(-8)
        moveb LC1+25,a5@(-7)
        moveb LC1+26,a5@(-6)
        pea a5@(-32)
        pea LC2
        jbsr _printf
        unlk a5
        rts



   BUGS
      
      None known.



 ----------------------------------------------------------------------------
    


No more fear cus pure HTML is here!
Copyright (C) 2013-2014 by Burnt Chip Dominators