Mercurial > hg > CbC > old > device
changeset 414:0a4416b34d4a
align fix.
author | kono |
---|---|
date | Fri, 22 Oct 2004 22:52:01 +0900 |
parents | d4dc6d99ffdb |
children | bdf900926f32 |
files | Changes mc-code-arm.c |
diffstat | 2 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/Changes Wed Oct 20 00:32:36 2004 +0900 +++ b/Changes Fri Oct 22 22:52:01 2004 +0900 @@ -6172,3 +6172,5 @@ emit_pop_free する時に、その一部がRET_LREGと重なっていて、 一緒にfreeされてしまう。そうすると、次のemit_popで、上書きされてしまう。 なので、RET_LREGにしないで、lmove してしまうのが良い。 + +align がおかしい
--- a/mc-code-arm.c Wed Oct 20 00:32:36 2004 +0900 +++ b/mc-code-arm.c Fri Oct 22 22:52:01 2004 +0900 @@ -3453,7 +3453,7 @@ align(int t) { if (t!=CHAR) { - if (data_alignment & 1) +// if (data_alignment & 1) printf("\t.align 2\n"); data_alignment = 0; } @@ -3526,7 +3526,8 @@ emit_int(int d) { data_mode(0); - printf("\t.long %d\n",d); + align(0); + printf("\t.word %d\n",d); } extern void @@ -3572,16 +3573,16 @@ { data_mode(0); if (offset) - printf("\t.long %s+%d\n",s,offset); + printf("\t.word %s+%d\n",s,offset); else - printf("\t.long %s\n",s); + printf("\t.word %s\n",s); } extern void emit_label(int labelno) { data_mode(0); - printf("\t.long .L%d\n",labelno); + printf("\t.word .L%d\n",labelno); } extern void