From ff7d68e41adaa89aa3f896954104befe7d4a130d Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 5 May 2014 00:49:26 +0200 Subject: [PATCH] gs: fix /undefined in --setcolor-- errors on amd64 --- sys/src/cmd/gs/src/zcrd.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/sys/src/cmd/gs/src/zcrd.c b/sys/src/cmd/gs/src/zcrd.c index c5d360463..d3c1ed8b1 100644 --- a/sys/src/cmd/gs/src/zcrd.c +++ b/sys/src/cmd/gs/src/zcrd.c @@ -361,8 +361,6 @@ cie_cache_joint(i_ctx_t *i_ctx_p, const ref_cie_render_procs * pcrprocs, space = r_space(&pqr_procs); for (i = 0; i < 3; i++) { ref *p = pqr_procs.value.refs + 3 + (4 + 4 * 6) * i; - const float *ppt = (float *)&pjc->points_sd; - int j; make_array(pqr_procs.value.refs + i, a_readonly | a_executable | space, 4, p); @@ -370,9 +368,37 @@ cie_cache_joint(i_ctx_t *i_ctx_p, const ref_cie_render_procs * pcrprocs, p[1] = pcrprocs->TransformPQR.value.refs[i]; make_oper(p + 2, 0, cie_exec_tpqr); make_oper(p + 3, 0, cie_post_exec_tpqr); - for (j = 0, p += 4; j < 4 * 6; j++, p++, ppt++) - make_real(p, *ppt); - } + p += 4; + + /* cant use array due to structure alignment */ + make_real(p, pjc->points_sd.ws.xyz.u); p++; + make_real(p, pjc->points_sd.ws.xyz.v); p++; + make_real(p, pjc->points_sd.ws.xyz.w); p++; + make_real(p, pjc->points_sd.ws.pqr.u); p++; + make_real(p, pjc->points_sd.ws.pqr.v); p++; + make_real(p, pjc->points_sd.ws.pqr.w); p++; + + make_real(p, pjc->points_sd.bs.xyz.u); p++; + make_real(p, pjc->points_sd.bs.xyz.v); p++; + make_real(p, pjc->points_sd.bs.xyz.w); p++; + make_real(p, pjc->points_sd.bs.pqr.u); p++; + make_real(p, pjc->points_sd.bs.pqr.v); p++; + make_real(p, pjc->points_sd.bs.pqr.w); p++; + + make_real(p, pjc->points_sd.wd.xyz.u); p++; + make_real(p, pjc->points_sd.wd.xyz.v); p++; + make_real(p, pjc->points_sd.wd.xyz.w); p++; + make_real(p, pjc->points_sd.wd.pqr.u); p++; + make_real(p, pjc->points_sd.wd.pqr.v); p++; + make_real(p, pjc->points_sd.wd.pqr.w); p++; + + make_real(p, pjc->points_sd.bd.xyz.u); p++; + make_real(p, pjc->points_sd.bd.xyz.v); p++; + make_real(p, pjc->points_sd.bd.xyz.w); p++; + make_real(p, pjc->points_sd.bd.pqr.u); p++; + make_real(p, pjc->points_sd.bd.pqr.v); p++; + make_real(p, pjc->points_sd.bd.pqr.w); p++; + } return cie_prepare_cache3(i_ctx_p, &pcrd->RangePQR, pqr_procs.value.const_refs, pjc->TransformPQR.caches, -- 2.44.0