MCPcopy Create free account
hub / github.com/decomp/decomp / expr

Method expr

cmd/ll2go/constant.go:145–225  ·  view source on GitHub ↗

expr converts the given LLVM IR expression to a corresponding Go expression.

(expr constant.Expr)

Source from the content-addressed store, hash-verified

143
144// expr converts the given LLVM IR expression to a corresponding Go expression.
145func (d *decompiler) expr(expr constant.Expr) ast.Expr {
146 switch expr := expr.(type) {
147 // Binary expressions
148 case *constant.ExprAdd:
149 return d.exprAdd(expr)
150 case *constant.ExprFAdd:
151 return d.exprFAdd(expr)
152 case *constant.ExprSub:
153 return d.exprSub(expr)
154 case *constant.ExprFSub:
155 return d.exprFSub(expr)
156 case *constant.ExprMul:
157 return d.exprMul(expr)
158 case *constant.ExprFMul:
159 return d.exprFMul(expr)
160 case *constant.ExprUDiv:
161 return d.exprUDiv(expr)
162 case *constant.ExprSDiv:
163 return d.exprSDiv(expr)
164 case *constant.ExprFDiv:
165 return d.exprFDiv(expr)
166 case *constant.ExprURem:
167 return d.exprURem(expr)
168 case *constant.ExprSRem:
169 return d.exprSRem(expr)
170 case *constant.ExprFRem:
171 return d.exprFRem(expr)
172 // Bitwise expressions
173 case *constant.ExprShl:
174 return d.exprShl(expr)
175 case *constant.ExprLShr:
176 return d.exprLShr(expr)
177 case *constant.ExprAShr:
178 return d.exprAShr(expr)
179 case *constant.ExprAnd:
180 return d.exprAnd(expr)
181 case *constant.ExprOr:
182 return d.exprOr(expr)
183 case *constant.ExprXor:
184 return d.exprXor(expr)
185 // Memory expressions
186 case *constant.ExprGetElementPtr:
187 return d.exprGetElementPtr(expr)
188 // Conversion expressions
189 case *constant.ExprTrunc:
190 return d.exprTrunc(expr)
191 case *constant.ExprZExt:
192 return d.exprZExt(expr)
193 case *constant.ExprSExt:
194 return d.exprSExt(expr)
195 case *constant.ExprFPTrunc:
196 return d.exprFPTrunc(expr)
197 case *constant.ExprFPExt:
198 return d.exprFPExt(expr)
199 case *constant.ExprFPToUI:
200 return d.exprFPToUI(expr)
201 case *constant.ExprFPToSI:
202 return d.exprFPToSI(expr)

Callers 1

constantMethod · 0.95

Calls 15

exprAddMethod · 0.95
exprFAddMethod · 0.95
exprSubMethod · 0.95
exprFSubMethod · 0.95
exprMulMethod · 0.95
exprFMulMethod · 0.95
exprUDivMethod · 0.95
exprSDivMethod · 0.95
exprFDivMethod · 0.95
exprURemMethod · 0.95
exprSRemMethod · 0.95
exprFRemMethod · 0.95

Tested by

no test coverage detected