LLVM: lib/Target/Lanai/LanaiAluCode.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_LIB_TARGET_LANAI_LANAIALUCODE_H

14#define LLVM_LIB_TARGET_LANAI_LANAIALUCODE_H

15

18

19namespace llvm {

41

42

43

46

48 unsigned const OP_ENCODING_MASK = 0x07;

49 return AluOp & OP_ENCODING_MASK;

50}

51

52inline static unsigned getAluOp(unsigned AluOp) {

53 unsigned const ALU_MASK = 0x3F;

54 return AluOp & ALU_MASK;

55}

56

58

60

61inline static unsigned makePreOp(unsigned AluOp) {

62 assert(isPostOp(AluOp) && "Operator can't be a post- and pre-op");

64}

65

66inline static unsigned makePostOp(unsigned AluOp) {

67 assert(isPreOp(AluOp) && "Operator can't be a post- and pre-op");

69}

70

74

78 return "add";

80 return "addc";

82 return "sub";

84 return "subb";

86 return "and";

87 case OR:

88 return "or";

90 return "xor";

92 return "sh";

94 return "sh";

96 return "sha";

97 default:

99 }

100}

101

116}

117}

118

119#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...

StringRef - Represent a constant reference to a string, i.e.

A switch()-like statement whose cases are string literals.

StringSwitch & Case(StringLiteral S, T Value)

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

Definition LanaiAluCode.h:20

static bool isPreOp(unsigned AluOp)

Definition LanaiAluCode.h:57

static unsigned getAluOp(unsigned AluOp)

Definition LanaiAluCode.h:52

static const char * lanaiAluCodeToString(unsigned AluOp)

Definition LanaiAluCode.h:75

static unsigned makePostOp(unsigned AluOp)

Definition LanaiAluCode.h:66

static unsigned makePreOp(unsigned AluOp)

Definition LanaiAluCode.h:61

static unsigned encodeLanaiAluCode(unsigned AluOp)

Definition LanaiAluCode.h:47

static AluCode stringToLanaiAluCode(StringRef S)

Definition LanaiAluCode.h:102

const int Lanai_POST_OP

Definition LanaiAluCode.h:45

AluCode

Definition LanaiAluCode.h:21

@ XOR

Definition LanaiAluCode.h:28

@ SHL

Definition LanaiAluCode.h:34

@ ADD

Definition LanaiAluCode.h:22

@ ADDC

Definition LanaiAluCode.h:23

@ AND

Definition LanaiAluCode.h:26

@ SRA

Definition LanaiAluCode.h:36

@ SPECIAL

Definition LanaiAluCode.h:29

@ UNKNOWN

Definition LanaiAluCode.h:39

@ OR

Definition LanaiAluCode.h:27

@ SUBB

Definition LanaiAluCode.h:25

@ SUB

Definition LanaiAluCode.h:24

@ SRL

Definition LanaiAluCode.h:35

static bool isPostOp(unsigned AluOp)

Definition LanaiAluCode.h:59

const int Lanai_PRE_OP

Definition LanaiAluCode.h:44

static bool modifiesOp(unsigned AluOp)

Definition LanaiAluCode.h:71

This is an optimization pass for GlobalISel generic memory operations.