}
                /* Set CR0 to indicate previous transactional state */
                vcpu->arch.regs.ccr = (vcpu->arch.regs.ccr & 0x0fffffff) |
-                       (((msr & MSR_TS_MASK) >> MSR_TS_S_LG) << 28);
+                       (((msr & MSR_TS_MASK) >> MSR_TS_S_LG) << 29);
                /* L=1 => tresume, L=0 => tsuspend */
                if (instr & (1 << 21)) {
                        if (MSR_TM_SUSPENDED(msr))
 
                /* Set CR0 to indicate previous transactional state */
                vcpu->arch.regs.ccr = (vcpu->arch.regs.ccr & 0x0fffffff) |
-                       (((msr & MSR_TS_MASK) >> MSR_TS_S_LG) << 28);
+                       (((msr & MSR_TS_MASK) >> MSR_TS_S_LG) << 29);
                vcpu->arch.shregs.msr &= ~MSR_TS_MASK;
                return RESUME_GUEST;
 
 
                /* Set CR0 to indicate previous transactional state */
                vcpu->arch.regs.ccr = (vcpu->arch.regs.ccr & 0x0fffffff) |
-                       (((msr & MSR_TS_MASK) >> MSR_TS_S_LG) << 28);
+                       (((msr & MSR_TS_MASK) >> MSR_TS_S_LG) << 29);
                vcpu->arch.shregs.msr = msr | MSR_TS_S;
                return RESUME_GUEST;
        }