diff options
author | matszpk <matszpk@interia.pl> | 2013-04-24 22:18:19 +0300 |
---|---|---|
committer | matszpk <matszpk@interia.pl> | 2013-04-24 22:18:19 +0300 |
commit | 317e8cc6a67be99c133342565083415ffa742975 (patch) | |
tree | f4a9771e9981f8c6681c80502248edcf816602c5 /src/codegen_arm.h | |
parent | 1486e994abc37aa645e5bb53e9c9c778e6407591 (diff) | |
download | ffts-317e8cc6a67be99c133342565083415ffa742975.zip ffts-317e8cc6a67be99c133342565083415ffa742975.tar.gz |
Update codegen_arm.h
Fix codegen for size>20 (ARM version).
Diffstat (limited to 'src/codegen_arm.h')
-rw-r--r-- | src/codegen_arm.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/codegen_arm.h b/src/codegen_arm.h index 79a8836..ad8a9d8 100644 --- a/src/codegen_arm.h +++ b/src/codegen_arm.h @@ -52,7 +52,7 @@ void ADDI(uint32_t **p, uint8_t dst, uint8_t src, int32_t imm) { int32_t oimm = imm; if(imm < 0) { imm = -imm; - uint32_t shamt = (__builtin_ctzl(imm)>15)?15:__builtin_ctzl(imm); + uint32_t shamt = (__builtin_ctzl(imm)>23)?23:__builtin_ctzl(imm); if(shamt & 1) shamt -= 1; imm >>= shamt; shamt = (32 - shamt)/2; @@ -63,7 +63,7 @@ void ADDI(uint32_t **p, uint8_t dst, uint8_t src, int32_t imm) { if(imm > 255) ADDI(p, dst, src, (oimm + ((imm & 0xff) << (32-shamt*2)))); }else{ - uint32_t shamt = (__builtin_ctzl(imm)>15)?15:__builtin_ctzl(imm); + uint32_t shamt = (__builtin_ctzl(imm)>23)?23:__builtin_ctzl(imm); if(shamt & 1) shamt -= 1; imm >>= shamt; shamt = (32 - shamt)/2; @@ -84,7 +84,7 @@ uint32_t LDRI(uint8_t dst, uint8_t base, uint32_t offset) { void MOVI(uint32_t **p, uint8_t dst, uint32_t imm) { uint32_t oimm = imm; - uint32_t shamt = (__builtin_ctzl(imm)>15)?15:__builtin_ctzl(imm); + uint32_t shamt = (__builtin_ctzl(imm)>23)?23:__builtin_ctzl(imm); if(shamt & 1) shamt -= 1; imm >>= shamt; shamt = (32 - shamt)/2; |