radeonsi: Use util_memcpy_cpu_to_le32()
authorTom Stellard <thomas.stellard@amd.com>
Fri, 18 Jul 2014 19:10:52 +0000 (15:10 -0400)
committerTom Stellard <thomas.stellard@amd.com>
Mon, 28 Jul 2014 14:14:28 +0000 (10:14 -0400)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_descriptors.c
src/gallium/drivers/radeonsi/si_shader.c

index 4751b8b8f4f332d036a09039ee19d5acefdee09b..171de45845a06d0043669fc0edaea2b26b9af457 100644 (file)
@@ -662,9 +662,7 @@ void si_upload_const_buffer(struct si_context *sctx, struct r600_resource **rbuf
                        return;
                }
 
-               for (i = 0; i < size / 4; ++i) {
-                       tmpPtr[i] = util_cpu_to_le32(((uint32_t *)ptr)[i]);
-               }
+               util_memcpy_cpu_to_le32(tmpPtr, ptr, size);
 
                u_upload_data(sctx->b.uploader, 0, size, tmpPtr, const_offset,
                                (struct pipe_resource**)rbuffer);
index 2a7577f334a97720afd4883042f04f6d6052d5e9..3fcd314b5c88f475fa6f28bbfbda330091bac7fc 100644 (file)
@@ -2553,7 +2553,7 @@ int si_compile_llvm(struct si_context *sctx, struct si_pipe_shader *shader,
 {
        unsigned r; /* llvm_compile result */
        unsigned i;
-       uint32_t *ptr;
+       unsigned char *ptr;
        struct radeon_shader_binary binary;
        bool dump = r600_can_dump_shader(&sctx->screen->b,
                        shader->selector ? shader->selector->tokens : NULL);
@@ -2619,22 +2619,13 @@ int si_compile_llvm(struct si_context *sctx, struct si_pipe_shader *shader,
                return -ENOMEM;
        }
 
-       ptr = (uint32_t*)sctx->b.ws->buffer_map(shader->bo->cs_buf, sctx->b.rings.gfx.cs, PIPE_TRANSFER_WRITE);
-       if (SI_BIG_ENDIAN) {
-               for (i = 0; i < binary.code_size / 4; ++i) {
-                       ptr[i] = util_cpu_to_le32((*(uint32_t*)(binary.code + i*4)));
-               }
-               ptr += (binary.code_size / 4);
-               for (i = 0; i < binary.rodata_size / 4; ++i) {
-                       ptr[i] = util_cpu_to_le32((*(uint32_t*)(binary.rodata + i * 4)));
-               }
-       } else {
-               memcpy(ptr, binary.code, binary.code_size);
-               if (binary.rodata_size > 0) {
-                       ptr += (binary.code_size / 4);
-                       memcpy(ptr, binary.rodata, binary.rodata_size);
-               }
+       ptr = sctx->b.ws->buffer_map(shader->bo->cs_buf, sctx->b.rings.gfx.cs, PIPE_TRANSFER_WRITE);
+       util_memcpy_cpu_to_le32(ptr, binary.code, binary.code_size);
+       if (binary.rodata_size > 0) {
+               ptr += binary.code_size;
+               util_memcpy_cpu_to_le32(ptr, binary.rodata, binary.rodata_size);
        }
+
        sctx->b.ws->buffer_unmap(shader->bo->cs_buf);
 
        free(binary.code);