diff options
-rw-r--r-- | builtin_function.cpp | 20 | ||||
-rw-r--r-- | ir.h | 2 | ||||
-rw-r--r-- | ir_print_visitor.cpp | 2 |
3 files changed, 22 insertions, 2 deletions
diff --git a/builtin_function.cpp b/builtin_function.cpp index 7cd08d772f..ef6af2052b 100644 --- a/builtin_function.cpp +++ b/builtin_function.cpp @@ -77,6 +77,22 @@ generate_log(exec_list *instructions, } static void +generate_exp2(exec_list *instructions, + ir_variable **declarations, + const glsl_type *type) +{ + generate_unop(instructions, declarations, type, ir_unop_exp2); +} + +static void +generate_log2(exec_list *instructions, + ir_variable **declarations, + const glsl_type *type) +{ + generate_unop(instructions, declarations, type, ir_unop_log2); +} + +static void generate_rsq(exec_list *instructions, ir_variable **declarations, const glsl_type *type) @@ -278,8 +294,8 @@ generate_110_functions(glsl_symbol_table *symtab, exec_list *instructions) make_gentype_function(symtab, instructions, "pow", 2, generate_pow); make_gentype_function(symtab, instructions, "exp", 1, generate_exp); make_gentype_function(symtab, instructions, "log", 1, generate_log); - /* FINISHME: exp2() */ - /* FINISHME: log2() */ + make_gentype_function(symtab, instructions, "exp2", 1, generate_exp2); + make_gentype_function(symtab, instructions, "log2", 1, generate_log2); make_gentype_function(symtab, instructions, "sqrt", 1, generate_sqrt); make_gentype_function(symtab, instructions, "inversesqrt", 1, generate_rsq); make_gentype_function(symtab, instructions, "abs", 1, generate_abs); @@ -228,6 +228,8 @@ enum ir_expression_operation { ir_unop_sqrt, ir_unop_exp, ir_unop_log, + ir_unop_exp2, + ir_unop_log2, ir_unop_f2i, /**< Float-to-integer conversion. */ ir_unop_i2f, /**< Integer-to-float conversion. */ ir_unop_u2f, /**< Unsigned-to-float conversion. */ diff --git a/ir_print_visitor.cpp b/ir_print_visitor.cpp index 8b2080f7ec..aeff280cdd 100644 --- a/ir_print_visitor.cpp +++ b/ir_print_visitor.cpp @@ -96,6 +96,8 @@ void ir_print_visitor::visit(ir_expression *ir) "sqrt", "exp", "log", + "exp2", + "log2", "f2i", "i2f", "u2f", |