scrypto-test 1.3.1

A library for testing Scrypto blueprints, from the Radix DLT project.
Documentation
;; LLVM memcpy builtin
(func $memcpy (param i32 i32 i32) (result i32)
  (local i32 i32 i32 i32 i32 i32 i32 i32)
  block
    block
      local.get 2
      i32.const 15
      i32.gt_u
      br_if 0
      local.get 0
      local.set 3
      br 1
    end
    local.get 0
    i32.const 0
    local.get 0
    i32.sub
    i32.const 3
    i32.and
    local.tee 4
    i32.add
    local.set 5
    block
      local.get 4
      i32.eqz
      br_if 0
      local.get 0
      local.set 3
      local.get 1
      local.set 6
      loop
        local.get 3
        local.get 6
        i32.load8_u
        i32.store8
        local.get 6
        i32.const 1
        i32.add
        local.set 6
        local.get 3
        i32.const 1
        i32.add
        local.tee 3
        local.get 5
        i32.lt_u
        br_if 0
      end
    end
    local.get 5
    local.get 2
    local.get 4
    i32.sub
    local.tee 7
    i32.const -4
    i32.and
    local.tee 8
    i32.add
    local.set 3
    block
      block
        local.get 1
        local.get 4
        i32.add
        local.tee 9
        i32.const 3
        i32.and
        i32.eqz
        br_if 0
        local.get 8
        i32.const 1
        i32.lt_s
        br_if 1
        local.get 9
        i32.const 3
        i32.shl
        local.tee 6
        i32.const 24
        i32.and
        local.set 2
        local.get 9
        i32.const -4
        i32.and
        local.tee 10
        i32.const 4
        i32.add
        local.set 1
        i32.const 0
        local.get 6
        i32.sub
        i32.const 24
        i32.and
        local.set 4
        local.get 10
        i32.load
        local.set 6
        loop
          local.get 5
          local.get 6
          local.get 2
          i32.shr_u
          local.get 1
          i32.load
          local.tee 6
          local.get 4
          i32.shl
          i32.or
          i32.store
          local.get 1
          i32.const 4
          i32.add
          local.set 1
          local.get 5
          i32.const 4
          i32.add
          local.tee 5
          local.get 3
          i32.lt_u
          br_if 0
          br 2
        end
      end
      local.get 8
      i32.const 1
      i32.lt_s
      br_if 0
      local.get 9
      local.set 1
      loop
        local.get 5
        local.get 1
        i32.load
        i32.store
        local.get 1
        i32.const 4
        i32.add
        local.set 1
        local.get 5
        i32.const 4
        i32.add
        local.tee 5
        local.get 3
        i32.lt_u
        br_if 0
      end
    end
    local.get 7
    i32.const 3
    i32.and
    local.set 2
    local.get 9
    local.get 8
    i32.add
    local.set 1
  end
  block
    local.get 2
    i32.eqz
    br_if 0
    local.get 3
    local.get 2
    i32.add
    local.set 5
    loop
      local.get 3
      local.get 1
      i32.load8_u
      i32.store8
      local.get 1
      i32.const 1
      i32.add
      local.set 1
      local.get 3
      i32.const 1
      i32.add
      local.tee 3
      local.get 5
      i32.lt_u
      br_if 0
    end
  end
  local.get 0)