summaryrefslogtreecommitdiffstats
path: root/src/codegen_arm.h
diff options
context:
space:
mode:
authormatszpk <matszpk@interia.pl>2013-04-24 22:18:19 +0300
committermatszpk <matszpk@interia.pl>2013-04-24 22:18:19 +0300
commit317e8cc6a67be99c133342565083415ffa742975 (patch)
treef4a9771e9981f8c6681c80502248edcf816602c5 /src/codegen_arm.h
parent1486e994abc37aa645e5bb53e9c9c778e6407591 (diff)
downloadffts-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.h6
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;
OpenPOWER on IntegriCloud