On Thu, 16 Dec 2010 20:29:58 +0100 Pierre Cassimans <cazz...@gmail.com> said:
huh? that looks like this is doing unaligned stuff: params->y = TO_INT(ADD(want_y, MUL(SUB(want_h, FROM_INT(params->h)), desc->align.y))); so we have: TO_INT ADD MUL SUB FROM_INT ie: #define TO_INT(a) eina_f32p32_int_to(a) #define ADD(a, b) eina_f32p32_add(a, b) #define MUL(a, b) eina_f32p32_mul(a, b) #define SUB(a, b) eina_f32p32_sub(a, b) #define FROM_INT(a) eina_f32p32_int_from(a) which are: static inline int32_t eina_f32p32_int_to(Eina_F32p32 v) { return (int32_t)(v >> 32); } static inline Eina_F32p32 eina_f32p32_add(Eina_F32p32 a, Eina_F32p32 b) { return a + b; } #define eina_fp32p32_llabs(a) ((a < 0) ? -(a) : (a)) static inline Eina_F32p32 eina_f32p32_mul(Eina_F32p32 a, Eina_F32p32 b) { /* Prevent overflow and do '(a * b) >> 32' */ /* Basically do: Eina_F16p16 * Eina_F16p16 = Eina_F32p32 */ Eina_F32p32 up; Eina_F32p32 down; Eina_F32p32 result; uint64_t as, bs; Eina_F32p32 sign; sign = a ^ b; as = eina_fp32p32_llabs(a); bs = eina_fp32p32_llabs(b); up = (as >> 16) * (bs >> 16); down = (as & 0xFFFF) * (bs & 0xFFFF); result = up + (down >> 32); return sign < 0 ? - result : result; } static inline Eina_F32p32 eina_f32p32_sub(Eina_F32p32 a, Eina_F32p32 b) { return a - b; } static inline Eina_F32p32 eina_f32p32_int_from(int32_t v) { return (Eina_F32p32)(v) << 32; } that's been in edje for a long time - it's fixed point math.. now have a look at that. nowhere there is it doing any "pointer funk" which would be a cause for unaligned accesses. what looks wrong is the bt - func params specifically look wrong. smells like something is inlined and gdb is getting it wrong. but... for now lets assume that the fixed point math above is what is triggering it... i dont see how. it's been there for ages. i cant read/see a potential unaligned access. unless the source inputs like params pointer is wrong or desc. they are pointing to unaligned data. i'd find that most peculiar if they were. > Hi, > > As told on IRC, when i run elementary_test, I get plenty of Alignment > trap errors in dmesg. It also takes 3 minutes to start it up on an HP > Ipaq h2200. > > I tried to debug the problem with gdb, and this is what I got. If not > enough info please ask me for more. I'm ready to learn how to really > give you good debug info :-) > > versions are all svn 54526 > > Linux h2200 2.6.21-hh20 #1 PREEMPT Fri Dec 25 06:15:37 CET 2009 armv5tel > unknown > > [ 3412.430000] Alignment trap: elementary_test (1341) PC=0x4042bbe0 > Instr=0xe1c581d0 Address=0x00140f64 FSR 0x013 > > Program received signal SIGINT, Interrupt. > _edje_part_recalc_single_aspect (ed=0x0, ep=0xfffffffb, desc=0x0, > chosen_desc=0x142614, rel1_to_x=0x57, rel1_to_y=0x0, > rel2_to_x=0x4048df10, > rel2_to_y=0x2f6d6c65, confine_to=0x0, params=0x6574692f) at > edje_calc.c:607 > 607 edje_calc.c: No such file or directory. > in edje_calc.c > > (gdb) l *0x04042bbe0 > 0x4042bbe0 is in _edje_part_recalc_single (edje_calc.c:604). > 599 in edje_calc.c > > Hope this helps > > > ------------------------------------------------------------------------------ > Lotusphere 2011 > Register now for Lotusphere 2011 and learn how > to connect the dots, take your collaborative environment > to the next level, and enter the era of Social Business. > http://p.sf.net/sfu/lotusphere-d2d > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Lotusphere 2011 Register now for Lotusphere 2011 and learn how to connect the dots, take your collaborative environment to the next level, and enter the era of Social Business. http://p.sf.net/sfu/lotusphere-d2d _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel