Index: priv/guest_amd64_toIR.c
===================================================================
--- priv/guest_amd64_toIR.c	(revision 3282)
+++ priv/guest_amd64_toIR.c	(working copy)
@@ -2330,6 +2330,10 @@
 IRExpr* handleAddrOverrides ( const VexAbiInfo* vbi, 
                               Prefix pfx, IRExpr* virtual )
 {
+   /* --- address size override --- */
+   if (haveASO(pfx))
+      virtual = unop(Iop_32Uto64, unop(Iop_64to32, virtual));
+
    /* Note that the below are hacks that relies on the assumption
       that %fs or %gs are constant.
       Typically, %fs is always 0x63 on linux (in the main thread, it
@@ -2357,10 +2361,6 @@
 
    /* cs, ds, es and ss are simply ignored in 64-bit mode. */
 
-   /* --- address size override --- */
-   if (haveASO(pfx))
-      virtual = unop(Iop_32Uto64, unop(Iop_64to32, virtual));
-
    return virtual;
 }
 
