diff options
author | Jukka Ojanen <jukka.ojanen@linkotec.net> | 2016-04-06 17:34:23 +0300 |
---|---|---|
committer | Jukka Ojanen <jukka.ojanen@linkotec.net> | 2016-04-06 17:34:23 +0300 |
commit | c85bf4b4a7a1199d9c48c24ec5a49ea0b16e1af1 (patch) | |
tree | 26c7a2934da7d47f7048d9709863901cd36fc9c5 /src/codegen_sse.h | |
parent | 78d328e98edf8b9bb5c272f4c2f900466c8b082a (diff) | |
download | ffts-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.h | 12 |
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); |