diff --git a/docs/LangRef.html b/docs/LangRef.html index a4b9b3580d1..20ad79799d3 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -152,9 +152,9 @@
  • Standard C Library Intrinsics
      -
    1. 'llvm.memcpy' Intrinsic
    2. -
    3. 'llvm.memmove' Intrinsic
    4. -
    5. 'llvm.memset' Intrinsic
    6. +
    7. 'llvm.memcpy.*' Intrinsic
    8. +
    9. 'llvm.memmove.*' Intrinsic
    10. +
    11. 'llvm.memset.*' Intrinsic
    12. 'llvm.isunordered.*' Intrinsic
    13. 'llvm.sqrt.*' Intrinsic
    14. @@ -3483,27 +3483,29 @@ for more efficient code generation.
      Syntax:
      -  declare void %llvm.memcpy(sbyte* <dest>, sbyte* <src>,
      -                            uint <len>, uint <align>)
      +  declare void %llvm.memcpy.i32(sbyte* <dest>, sbyte* <src>,
      +                                uint <len>, uint <align>)
      +  declare void %llvm.memcpy.i64(sbyte* <dest>, sbyte* <src>,
      +                                ulong <len>, uint <align>)
       
      Overview:

      -The 'llvm.memcpy' intrinsic copies a block of memory from the source +The 'llvm.memcpy.*' intrinsics copy a block of memory from the source location to the destination location.

      -Note that, unlike the standard libc function, the llvm.memcpy intrinsic -does not return a value, and takes an extra alignment argument. +Note that, unlike the standard libc function, the llvm.memcpy.* +intrinsics do not return a value, and takes an extra alignment argument.

      Arguments:

      The first argument is a pointer to the destination, the second is a pointer to -the source. The third argument is an (arbitrarily sized) integer argument +the source. The third argument is an integer argument specifying the number of bytes to copy, and the fourth argument is the alignment of the source and destination locations.

      @@ -3517,7 +3519,7 @@ and that both the source and destination pointers are aligned to that boundary.
      Semantics:

      -The 'llvm.memcpy' intrinsic copies a block of memory from the source +The 'llvm.memcpy.*' intrinsics copy a block of memory from the source location to the destination location, which are not allowed to overlap. It copies "len" bytes of memory over. If the argument is known to be aligned to some boundary, this can be specified as the fourth argument, otherwise it should @@ -3535,28 +3537,30 @@ be set to 0 or 1.

      Syntax:
      -  declare void %llvm.memmove(sbyte* <dest>, sbyte* <src>,
      -                             uint <len>, uint <align>)
      +  declare void %llvm.memmove.i32(sbyte* <dest>, sbyte* <src>,
      +                                 uint <len>, uint <align>)
      +  declare void %llvm.memmove.i64(sbyte* <dest>, sbyte* <src>,
      +                                 ulong <len>, uint <align>)
       
      Overview:

      -The 'llvm.memmove' intrinsic moves a block of memory from the source -location to the destination location. It is similar to the 'llvm.memcpy' -intrinsic but allows the two memory locations to overlap. +The 'llvm.memmove.*' intrinsics move a block of memory from the source +location to the destination location. It is similar to the +'llvm.memcmp' intrinsic but allows the two memory locations to overlap.

      -Note that, unlike the standard libc function, the llvm.memmove intrinsic -does not return a value, and takes an extra alignment argument. +Note that, unlike the standard libc function, the llvm.memmove.* +intrinsics do not return a value, and takes an extra alignment argument.

      Arguments:

      The first argument is a pointer to the destination, the second is a pointer to -the source. The third argument is an (arbitrarily sized) integer argument +the source. The third argument is an integer argument specifying the number of bytes to copy, and the fourth argument is the alignment of the source and destination locations.

      @@ -3570,7 +3574,7 @@ and that both the source and destination pointers are aligned to that boundary.
      Semantics:

      -The 'llvm.memmove' intrinsic copies a block of memory from the source +The 'llvm.memmove.*' intrinsics copy a block of memory from the source location to the destination location, which may overlap. It copies "len" bytes of memory over. If the argument is known to be aligned to some boundary, this can be specified as the fourth argument, otherwise it should @@ -3581,21 +3585,23 @@ be set to 0 or 1.

      Syntax:
      -  declare void %llvm.memset(sbyte* <dest>, ubyte <val>,
      -                            uint <len>, uint <align>)
      +  declare void %llvm.memset.i32(sbyte* <dest>, ubyte <val>,
      +                                uint <len>, uint <align>)
      +  declare void %llvm.memset.i64(sbyte* <dest>, ubyte <val>,
      +                                ulong <len>, uint <align>)
       
      Overview:

      -The 'llvm.memset' intrinsic fills a block of memory with a particular +The 'llvm.memset.*' intrinsics fill a block of memory with a particular byte value.

      @@ -3608,7 +3614,7 @@ does not return a value, and takes an extra alignment argument.

      The first argument is a pointer to the destination to fill, the second is the -byte value to fill it with, the third argument is an (arbitrarily sized) integer +byte value to fill it with, the third argument is an integer argument specifying the number of bytes to fill, and the fourth argument is the known alignment of destination location.

      @@ -3622,7 +3628,8 @@ and that the destination pointer is aligned to that boundary.
      Semantics:

      -The 'llvm.memset' intrinsic fills "len" bytes of memory starting at the +The 'llvm.memset.*' intrinsics fill "len" bytes of memory starting at +the destination location. If the argument is known to be aligned to some boundary, this can be specified as the fourth argument, otherwise it should be set to 0 or 1.