Ignore:
Timestamp:
Apr 14, 2017, 9:41:36 PM (11 days ago)
Author:
brainslayer
Message:

kernel update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-4.9/arch/powerpc/kernel/align.c

    r31574 r31859  
    808808        flags = aligninfo[instr].flags;
    809809
    810         /* ldbrx/stdbrx overlap lfs/stfs in the DSISR unfortunately */
    811         if (IS_XFORM(instruction) && ((instruction >> 1) & 0x3ff) == 532) {
    812                 nb = 8;
    813                 flags = LD+SW;
    814         } else if (IS_XFORM(instruction) &&
    815                    ((instruction >> 1) & 0x3ff) == 660) {
    816                 nb = 8;
    817                 flags = ST+SW;
     810        /*
     811         * Handle some cases which give overlaps in the DSISR values.
     812         */
     813        if (IS_XFORM(instruction)) {
     814                switch (get_xop(instruction)) {
     815                case 532:       /* ldbrx */
     816                        nb = 8;
     817                        flags = LD+SW;
     818                        break;
     819                case 660:       /* stdbrx */
     820                        nb = 8;
     821                        flags = ST+SW;
     822                        break;
     823                case 20:        /* lwarx */
     824                case 84:        /* ldarx */
     825                case 116:       /* lharx */
     826                case 276:       /* lqarx */
     827                        return 0;       /* not emulated ever */
     828                }
    818829        }
    819830
Note: See TracChangeset for help on using the changeset viewer.