| 694 | } |
| 695 | |
| 696 | static void printPredicateOperand(MCInst *MI, unsigned OpNo, |
| 697 | SStream *O, const char *Modifier) |
| 698 | { |
| 699 | unsigned Code = (unsigned int)MCOperand_getImm(MCInst_getOperand(MI, OpNo)); |
| 700 | |
| 701 | MI->flat_insn->detail->ppc.bc = (ppc_bc)cc_normalize(Code); |
| 702 | |
| 703 | if (!strcmp(Modifier, "cc")) { |
| 704 | switch ((ppc_predicate)Code) { |
| 705 | default: // unreachable |
| 706 | case PPC_PRED_LT_MINUS: |
| 707 | case PPC_PRED_LT_PLUS: |
| 708 | case PPC_PRED_LT: |
| 709 | SStream_concat0(O, "lt"); |
| 710 | return; |
| 711 | case PPC_PRED_LE_MINUS: |
| 712 | case PPC_PRED_LE_PLUS: |
| 713 | case PPC_PRED_LE: |
| 714 | SStream_concat0(O, "le"); |
| 715 | return; |
| 716 | case PPC_PRED_EQ_MINUS: |
| 717 | case PPC_PRED_EQ_PLUS: |
| 718 | case PPC_PRED_EQ: |
| 719 | SStream_concat0(O, "eq"); |
| 720 | return; |
| 721 | case PPC_PRED_GE_MINUS: |
| 722 | case PPC_PRED_GE_PLUS: |
| 723 | case PPC_PRED_GE: |
| 724 | SStream_concat0(O, "ge"); |
| 725 | return; |
| 726 | case PPC_PRED_GT_MINUS: |
| 727 | case PPC_PRED_GT_PLUS: |
| 728 | case PPC_PRED_GT: |
| 729 | SStream_concat0(O, "gt"); |
| 730 | return; |
| 731 | case PPC_PRED_NE_MINUS: |
| 732 | case PPC_PRED_NE_PLUS: |
| 733 | case PPC_PRED_NE: |
| 734 | SStream_concat0(O, "ne"); |
| 735 | return; |
| 736 | case PPC_PRED_UN_MINUS: |
| 737 | case PPC_PRED_UN_PLUS: |
| 738 | case PPC_PRED_UN: |
| 739 | SStream_concat0(O, "un"); |
| 740 | return; |
| 741 | case PPC_PRED_NU_MINUS: |
| 742 | case PPC_PRED_NU_PLUS: |
| 743 | case PPC_PRED_NU: |
| 744 | SStream_concat0(O, "nu"); |
| 745 | return; |
| 746 | case PPC_PRED_BIT_SET: |
| 747 | case PPC_PRED_BIT_UNSET: |
| 748 | // llvm_unreachable("Invalid use of bit predicate code"); |
| 749 | SStream_concat0(O, "invalid-predicate"); |
| 750 | return; |
| 751 | } |
| 752 | } |
| 753 |
nothing calls this directly
no test coverage detected
searching dependent graphs…