__u32   ext_params;                     /* 0x0080 */
        __u16   ext_cpu_addr;                   /* 0x0084 */
        __u16   ext_int_code;                   /* 0x0086 */
-       __u16   svc_ilc;                        /* 0x0088 */
-       __u16   svc_code;                       /* 0x008a */
+       __u32   svc_int_code;                   /* 0x0088 */
        __u16   pgm_ilc;                        /* 0x008c */
        __u16   pgm_code;                       /* 0x008e */
        __u32   data_exc_code;                  /* 0x0090 */
 
        OFFSET(__LC_EXT_PARAMS, lowcore, ext_params);
        OFFSET(__LC_EXT_CPU_ADDR, lowcore, ext_cpu_addr);
        OFFSET(__LC_EXT_INT_CODE, lowcore, ext_int_code);
-       OFFSET(__LC_SVC_ILC, lowcore, svc_ilc);
-       OFFSET(__LC_SVC_INT_CODE, lowcore, svc_code);
        OFFSET(__LC_PGM_ILC, lowcore, pgm_ilc);
        OFFSET(__LC_PGM_INT_CODE, lowcore, pgm_code);
        OFFSET(__LC_DATA_EXC_CODE, lowcore, data_exc_code);
 
        xgr     %r10,%r10
        xgr     %r11,%r11
        la      %r2,STACK_FRAME_OVERHEAD(%r15)  # pointer to pt_regs
+       mvc     __PT_R8(64,%r2),__LC_SAVE_AREA_SYNC
        lgr     %r3,%r14
        brasl   %r14,__do_syscall
        lctlg   %c1,%c1,__LC_USER_ASCE
 
 {
        add_random_kstack_offset();
        enter_from_user_mode(regs);
-
-       memcpy(®s->gprs[8], S390_lowcore.save_area_sync, 8 * sizeof(unsigned long));
-       memcpy(®s->int_code, &S390_lowcore.svc_ilc, sizeof(regs->int_code));
        regs->psw = S390_lowcore.svc_old_psw;
-
+       regs->int_code = S390_lowcore.svc_int_code;
        update_timer_sys();
 
        local_irq_enable();