summaryrefslogtreecommitdiffstats
path: root/src/codegen_sse.h
diff options
context:
space:
mode:
authorJukka Ojanen <jukka.ojanen@linkotec.net>2016-04-06 17:34:23 +0300
committerJukka Ojanen <jukka.ojanen@linkotec.net>2016-04-06 17:34:23 +0300
commitc85bf4b4a7a1199d9c48c24ec5a49ea0b16e1af1 (patch)
tree26c7a2934da7d47f7048d9709863901cd36fc9c5 /src/codegen_sse.h
parent78d328e98edf8b9bb5c272f4c2f900466c8b082a (diff)
downloadffts-c85bf4b4a7a1199d9c48c24ec5a49ea0b16e1af1.zip
ffts-c85bf4b4a7a1199d9c48c24ec5a49ea0b16e1af1.tar.gz
Try to remove some of the hard coded offsets to _ffts_plan_t
Diffstat (limited to 'src/codegen_sse.h')
-rw-r--r--src/codegen_sse.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/codegen_sse.h b/src/codegen_sse.h
index d15b316..e9819f1 100644
--- a/src/codegen_sse.h
+++ b/src/codegen_sse.h
@@ -437,10 +437,12 @@ generate_leaf_init(insns_t **fp, uint32_t loop_count)
x86_clear_reg(ins, X86_EAX);
/* set "pointer" to offsets */
- x64_mov_reg_membase(ins, X64_R9, X64_RCX, 0x0, 8);
+ x64_mov_reg_membase(ins, X64_R9, X64_RCX,
+ offsetof(struct _ffts_plan_t, offsets), 8);
/* set "pointer" to constants */
- x64_mov_reg_membase(ins, X64_RSI, X64_RCX, 0xE0, 8);
+ x64_mov_reg_membase(ins, X64_RSI, X64_RCX,
+ offsetof(struct _ffts_plan_t, constants), 8);
/* use XMM3 for sign change */
x64_sse_movaps_reg_membase(ins, X64_XMM3, X64_RSI, 0);
@@ -454,10 +456,12 @@ generate_leaf_init(insns_t **fp, uint32_t loop_count)
x86_clear_reg(ins, X86_EAX);
/* set "pointer" to offsets */
- x64_mov_reg_membase(ins, X64_R8, X64_RDI, 0x0, 8);
+ x64_mov_reg_membase(ins, X64_R8, X64_RDI,
+ offsetof(struct _ffts_plan_t, offsets), 8);
/* set "pointer" to constants */
- x64_mov_reg_membase(ins, X64_R9, X64_RDI, 0xE0, 8);
+ x64_mov_reg_membase(ins, X64_R9, X64_RDI,
+ offsetof(struct _ffts_plan_t, constants), 8);
/* align loop/jump destination */
ffts_align_mem16(&ins, 9);
OpenPOWER on IntegriCloud