tree:
https://github.com/0day-ci/linux/commits/UPDATE-20200516-195607/Jordan-Ni...
head: dae797aa7e7f8d885f42df4c29129e8135bc7b1c
commit: b8a5a93bf8e358960a60e04435d411a867b5a1ea [29/30] powerpc sstep: Add support for
prefixed load/stores
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout b8a5a93bf8e358960a60e04435d411a867b5a1ea
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
arch/powerpc/lib/sstep.c: In function 'analyse_instr':
> arch/powerpc/lib/sstep.c:2696:9: error: 'suffix'
undeclared (first use in this function)
2696 | ra = (suffix >> 16) &
0x1f;
| ^~~~~~
arch/powerpc/lib/sstep.c:2696:9: note: each undeclared identifier is reported only once
for each function it appears in
vim +/suffix +2696 arch/powerpc/lib/sstep.c
2677
2678 #ifdef __powerpc64__
2679 case 62: /* std[u] */
2680 op->ea = dsform_ea(word, regs);
2681 switch (word & 3) {
2682 case 0: /* std */
2683 op->type = MKOP(STORE, 0, 8);
2684 break;
2685 case 1: /* stdu */
2686 op->type = MKOP(STORE, UPDATE, 8);
2687 break;
2688 case 2: /* stq */
2689 if (!(rd & 1))
2690 op->type = MKOP(STORE, 0, 16);
2691 break;
2692 }
2693 break;
2694 case 1: /* Prefixed instructions */
2695 prefix_r = word & (1ul << 20);
2696 ra = (suffix >> 16) & 0x1f;
2697 op->update_reg = ra;
2698 rd = (suffix >> 21) & 0x1f;
2699 op->reg = rd;
2700 op->val = regs->gpr[rd];
2701
2702 suffixopcode = suffix >> 26;
2703 prefixtype = (word >> 24) & 0x3;
2704 switch (prefixtype) {
2705 case 0: /* Type 00 Eight-Byte Load/Store */
2706 if (prefix_r && ra)
2707 break;
2708 op->ea = mlsd_8lsd_ea(word, suffix, regs);
2709 switch (suffixopcode) {
2710 case 41: /* plwa */
2711 op->type = MKOP(LOAD, PREFIXED | SIGNEXT, 4);
2712 break;
2713 case 42: /* plxsd */
2714 op->reg = rd + 32;
2715 op->type = MKOP(LOAD_VSX, PREFIXED, 8);
2716 op->element_size = 8;
2717 op->vsx_flags = VSX_CHECK_VEC;
2718 break;
2719 case 43: /* plxssp */
2720 op->reg = rd + 32;
2721 op->type = MKOP(LOAD_VSX, PREFIXED, 4);
2722 op->element_size = 8;
2723 op->vsx_flags = VSX_FPCONV | VSX_CHECK_VEC;
2724 break;
2725 case 46: /* pstxsd */
2726 op->reg = rd + 32;
2727 op->type = MKOP(STORE_VSX, PREFIXED, 8);
2728 op->element_size = 8;
2729 op->vsx_flags = VSX_CHECK_VEC;
2730 break;
2731 case 47: /* pstxssp */
2732 op->reg = rd + 32;
2733 op->type = MKOP(STORE_VSX, PREFIXED, 4);
2734 op->element_size = 8;
2735 op->vsx_flags = VSX_FPCONV | VSX_CHECK_VEC;
2736 break;
2737 case 51: /* plxv1 */
2738 op->reg += 32;
2739 fallthrough;
2740 case 50: /* plxv0 */
2741 op->type = MKOP(LOAD_VSX, PREFIXED, 16);
2742 op->element_size = 16;
2743 op->vsx_flags = VSX_CHECK_VEC;
2744 break;
2745 case 55: /* pstxv1 */
2746 op->reg = rd + 32;
2747 fallthrough;
2748 case 54: /* pstxv0 */
2749 op->type = MKOP(STORE_VSX, PREFIXED, 16);
2750 op->element_size = 16;
2751 op->vsx_flags = VSX_CHECK_VEC;
2752 break;
2753 case 56: /* plq */
2754 op->type = MKOP(LOAD, PREFIXED, 16);
2755 break;
2756 case 57: /* pld */
2757 op->type = MKOP(LOAD, PREFIXED, 8);
2758 break;
2759 case 60: /* stq */
2760 op->type = MKOP(STORE, PREFIXED, 16);
2761 break;
2762 case 61: /* pstd */
2763 op->type = MKOP(STORE, PREFIXED, 8);
2764 break;
2765 }
2766 break;
2767 case 1: /* Type 01 Eight-Byte Register-to-Register */
2768 break;
2769 case 2: /* Type 10 Modified Load/Store */
2770 if (prefix_r && ra)
2771 break;
2772 op->ea = mlsd_8lsd_ea(word, suffix, regs);
2773 switch (suffixopcode) {
2774 case 32: /* plwz */
2775 op->type = MKOP(LOAD, PREFIXED, 4);
2776 break;
2777 case 34: /* plbz */
2778 op->type = MKOP(LOAD, PREFIXED, 1);
2779 break;
2780 case 36: /* pstw */
2781 op->type = MKOP(STORE, PREFIXED, 4);
2782 break;
2783 case 38: /* pstb */
2784 op->type = MKOP(STORE, PREFIXED, 1);
2785 break;
2786 case 40: /* plhz */
2787 op->type = MKOP(LOAD, PREFIXED, 2);
2788 break;
2789 case 42: /* plha */
2790 op->type = MKOP(LOAD, PREFIXED | SIGNEXT, 2);
2791 break;
2792 case 44: /* psth */
2793 op->type = MKOP(STORE, PREFIXED, 2);
2794 break;
2795 case 48: /* plfs */
2796 op->type = MKOP(LOAD_FP, PREFIXED | FPCONV, 4);
2797 break;
2798 case 50: /* plfd */
2799 op->type = MKOP(LOAD_FP, PREFIXED, 8);
2800 break;
2801 case 52: /* pstfs */
2802 op->type = MKOP(STORE_FP, PREFIXED | FPCONV, 4);
2803 break;
2804 case 54: /* pstfd */
2805 op->type = MKOP(STORE_FP, PREFIXED, 8);
2806 break;
2807 }
2808 break;
2809 case 3: /* Type 11 Modified Register-to-Register */
2810 break;
2811 }
2812 #endif /* __powerpc64__ */
2813
2814 }
2815
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org