Mesa (master): radeonsi: Use util_memcpy_cpu_to_le32()

Tom Stellard tstellar at kemper.freedesktop.org
Mon Jul 28 15:21:35 UTC 2014


Module: Mesa
Branch: master
Commit: 6f0c1f2b5f8f1895878fcbf0b8d1b1ebcb719d70
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f0c1f2b5f8f1895878fcbf0b8d1b1ebcb719d70

Author: Tom Stellard <thomas.stellard at amd.com>
Date:   Fri Jul 18 15:10:52 2014 -0400

radeonsi: Use util_memcpy_cpu_to_le32()

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_descriptors.c |    4 +---
 src/gallium/drivers/radeonsi/si_shader.c      |   23 +++++++----------------
 2 files changed, 8 insertions(+), 19 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
index 4751b8b..171de45 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -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);
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 2a7577f..3fcd314 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -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);




More information about the mesa-commit mailing list