Mercurial > hg > CbC > old > device
comparison Changes @ 416:a6ed0575d731
ARM goto code, Parallel assignment
author | kono |
---|---|
date | Sun, 24 Oct 2004 21:07:46 +0900 |
parents | 0a4416b34d4a |
children | 98888da30b35 |
comparison
equal
deleted
inserted
replaced
415:bdf900926f32 | 416:a6ed0575d731 |
---|---|
6172 emit_pop_free する時に、その一部がRET_LREGと重なっていて、 | 6172 emit_pop_free する時に、その一部がRET_LREGと重なっていて、 |
6173 一緒にfreeされてしまう。そうすると、次のemit_popで、上書きされてしまう。 | 6173 一緒にfreeされてしまう。そうすると、次のemit_popで、上書きされてしまう。 |
6174 なので、RET_LREGにしないで、lmove してしまうのが良い。 | 6174 なので、RET_LREGにしないで、lmove してしまうのが良い。 |
6175 | 6175 |
6176 align がおかしい | 6176 align がおかしい |
6177 | |
6178 Sat Oct 23 23:33:11 JST 2004 | |
6179 | |
6180 struct を使った interface をregister にmapするかどうか。まぁ、 | |
6181 難しいけどね。 | |
6182 | |
6183 やっぱりarmのbitfieldを合わせるのは止めた方がいいんじゃない? | |
6184 long long 以外は、型を大きくして対応できる。long long のはみ出し | |
6185 は、ちょっと対処できない。 | |
6186 a:8 => a0:4<<4+a1:4 | |
6187 a:8 = hoge => a0:4 = hoge<<4, a1:4 = hoge; | |
6188 というように分解する? | |
6189 | |
6190 Sun Oct 24 14:19:13 JST 2004 | |
6191 | |
6192 code_frame_pointer と code_environment は同じなんですけど... | |
6193 | |
6194 巨大な構造体を並列代入すると、 | |
6195 | |
6196 自分自身が重なっている | |
6197 |----------| | |
6198 |----------| | |
6199 | |
6200 では、 | |
6201 |----------| | |
6202 --copy-> |----------| | |
6203 他のものを代入 | |
6204 <-copy-- | |
6205 |----------| | |
6206 ってことになる。 | |
6207 | |
6208 これは、ちょっと手間が大きい。 | |
6209 |--|---|---| | |
6210 |--|---|---| | |
6211 と分割する(分割が細かくならない?) | |
6212 |---|--|---| | |
6213 |---|--|---| | |
6214 | |
6215 分割はだめだね。自分自身しか重なってないのだったらoverappable copy | |
6216 する。 | |
6217 |----------|----------|----------| | |
6218 |----------|----------|----------| | |
6219 | |
6220 circular dependency はrecursive callする必要はないね。 | |
6221 | |
6222 なんか、構造体が一度、スタックにあげられてから戻されているみたい | |
6223 | |
6224 RSTRUCT って、本当にいるの? | |
6225 | |
6226 なんか、「まだ、emit_copy が間違っている!」 | |
6227 | |
6228 PowerPC は、code のレジスタに割り当てられた分のスタック上の引数 | |
6229 を割り当てているな。なので、 | |
6230 ## code carg6(int i, int j,int k,int l,struct arg args0) | |
6231 ## goto carg3(args0,args0,i,j,k,l); | |
6232 で、args0 のcopyが余計に出るね。 しかもずれ方が変。 | |
6233 | |
6234 無害ではあるんだが... | |
6235 | |
6236 でも、それでバグを見つけたわけか。 | |
6237 | |
6238 だいぶ、enbug しちゃったよ... |