When I start vim 7.1.175 on my alpha running freebsd, I see a bunch of 
unaligned accesses:

pid 74601 (vim): unaligned access: va=0x1202898cd pc=0x120057068 
ra=0x120057044 op=ldl
pid 74601 (vim): unaligned access: va=0x1202898cd pc=0x12005708c 
ra=0x12005707c op=ldl
pid 74601 (vim): unaligned access: va=0x1202d406d pc=0x120057068 
ra=0x120057044 op=ldl
pid 74601 (vim): unaligned access: va=0x1202d406d pc=0x12005708c 
ra=0x12005707c op=ldl
pid 74601 (vim): unaligned access: va=0x1202d428d pc=0x120057068 
ra=0x120057044 op=ldl
pid 74601 (vim): unaligned access: va=0x1202d428d pc=0x12005708c 
ra=0x12005707c op=ldl

The following patch stops these messages.  To be honest, I'm not sure 
I've got this right, as all I've done is expand the HI2DI a little.  The 
goal I had with this patch was to be able to inspect the di value in gdb 
to see about its alignment.  But I found that the simple expansion also 
stopped the unaligned accesses.

Thoughts?

Matthew

--- src/eval.c.orig     Sat Jan  5 09:33:04 2008
+++ src/eval.c  Sat Jan  5 09:39:55 2008
@@ -3380,6 +3380,7 @@
      char_u     *name;
      int                forceit;
  {
+    dictitem_T  *di;
      hashtab_T  *ht;
      hashitem_T *hi;
      char_u     *varname;
@@ -3390,9 +3391,10 @@
         hi = hash_find(ht, varname);
         if (!HASHITEM_EMPTY(hi))
         {
-           if (var_check_fixed(HI2DI(hi)->di_flags, name))
+           di = HIKEY2DI(hi->hi_key);
+           if (var_check_fixed(di->di_flags, name))
                 return FAIL;
-           if (var_check_ro(HI2DI(hi)->di_flags, name))
+           if (var_check_ro(di->di_flags, name))
                 return FAIL;
             delete_var(ht, hi);
             return OK;

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui