[qfcc] Use index labels for the type arrays

The one place that needed it most... constfold.c
This commit is contained in:
Bill Currie 2022-01-18 21:22:18 +09:00
parent ed501b7734
commit 5b97aa3897
1 changed files with 240 additions and 240 deletions

View File

@ -1053,288 +1053,288 @@ do_op_invalid (int op, expr_t *e, expr_t *e1, expr_t *e2)
}
static operation_t op_void[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_invalid, // ev_float
do_op_invalid, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_invalid, // ev_quaternion
do_op_invalid, // ev_int
do_op_invalid, // ev_uint
do_op_invalid, // ev_short
do_op_invalid, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_invalid,
[ev_vector] = do_op_invalid,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_invalid,
[ev_int] = do_op_invalid,
[ev_uint] = do_op_invalid,
[ev_short] = do_op_invalid,
[ev_double] = do_op_invalid,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_string[ev_type_count] = {
do_op_invalid, // ev_void
do_op_string, // ev_string
do_op_invalid, // ev_float
do_op_invalid, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_invalid, // ev_quaternion
do_op_invalid, // ev_int
do_op_invalid, // ev_uint
do_op_invalid, // ev_short
do_op_invalid, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_string,
[ev_float] = do_op_invalid,
[ev_vector] = do_op_invalid,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_invalid,
[ev_int] = do_op_invalid,
[ev_uint] = do_op_invalid,
[ev_short] = do_op_invalid,
[ev_double] = do_op_invalid,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_float[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_float, // ev_float
do_op_vector, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_quaternion, // ev_quaternion
do_op_float, // ev_int
do_op_float, // ev_uint
do_op_float, // ev_short
do_op_double, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_float,
[ev_vector] = do_op_vector,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_quaternion,
[ev_int] = do_op_float,
[ev_uint] = do_op_float,
[ev_short] = do_op_float,
[ev_double] = do_op_double,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_vector[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_vector, // ev_float
do_op_vector, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_invalid, // ev_quaternion
do_op_vector, // ev_int
do_op_vector, // ev_uint
do_op_vector, // ev_short
do_op_vector, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_vector,
[ev_vector] = do_op_vector,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_invalid,
[ev_int] = do_op_vector,
[ev_uint] = do_op_vector,
[ev_short] = do_op_vector,
[ev_double] = do_op_vector,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_entity[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_invalid, // ev_float
do_op_invalid, // ev_vector
do_op_entity, // ev_entity
do_op_entity, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_invalid, // ev_quaternion
do_op_invalid, // ev_int
do_op_invalid, // ev_uint
do_op_invalid, // ev_short
do_op_invalid, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_invalid,
[ev_vector] = do_op_invalid,
[ev_entity] = do_op_entity,
[ev_field] = do_op_entity,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_invalid,
[ev_int] = do_op_invalid,
[ev_uint] = do_op_invalid,
[ev_short] = do_op_invalid,
[ev_double] = do_op_invalid,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_field[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_invalid, // ev_float
do_op_invalid, // ev_vector
do_op_invalid, // ev_entity
do_op_field, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_invalid, // ev_quaternion
do_op_invalid, // ev_int
do_op_invalid, // ev_uint
do_op_invalid, // ev_short
do_op_invalid, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_invalid,
[ev_vector] = do_op_invalid,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_field,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_invalid,
[ev_int] = do_op_invalid,
[ev_uint] = do_op_invalid,
[ev_short] = do_op_invalid,
[ev_double] = do_op_invalid,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_func[ev_type_count] = {
do_op_func, // ev_void
do_op_func, // ev_string
do_op_func, // ev_float
do_op_func, // ev_vector
do_op_func, // ev_entity
do_op_func, // ev_field
do_op_func, // ev_func
do_op_func, // ev_ptr
do_op_func, // ev_quaternion
do_op_func, // ev_int
do_op_func, // ev_uint
do_op_func, // ev_short
do_op_func, // ev_double
0, // ev_long
0, // ev_ulong
do_op_func, // ev_invalid
[ev_void] = do_op_func,
[ev_string] = do_op_func,
[ev_float] = do_op_func,
[ev_vector] = do_op_func,
[ev_entity] = do_op_func,
[ev_field] = do_op_func,
[ev_func] = do_op_func,
[ev_ptr] = do_op_func,
[ev_quaternion] = do_op_func,
[ev_int] = do_op_func,
[ev_uint] = do_op_func,
[ev_short] = do_op_func,
[ev_double] = do_op_func,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_func,
};
static operation_t op_pointer[ev_type_count] = {
do_op_pointer, // ev_void
do_op_pointer, // ev_string
do_op_pointer, // ev_float
do_op_pointer, // ev_vector
do_op_pointer, // ev_entity
do_op_pointer, // ev_field
do_op_pointer, // ev_func
do_op_pointer, // ev_ptr
do_op_pointer, // ev_quaternion
do_op_pointer, // ev_int
do_op_pointer, // ev_uint
do_op_pointer, // ev_short
do_op_pointer, // ev_double
0, // ev_long
0, // ev_ulong
do_op_pointer, // ev_invalid
[ev_void] = do_op_pointer,
[ev_string] = do_op_pointer,
[ev_float] = do_op_pointer,
[ev_vector] = do_op_pointer,
[ev_entity] = do_op_pointer,
[ev_field] = do_op_pointer,
[ev_func] = do_op_pointer,
[ev_ptr] = do_op_pointer,
[ev_quaternion] = do_op_pointer,
[ev_int] = do_op_pointer,
[ev_uint] = do_op_pointer,
[ev_short] = do_op_pointer,
[ev_double] = do_op_pointer,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_pointer,
};
static operation_t op_quaternion[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_quaternion, // ev_float
do_op_quatvect, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_quaternion, // ev_quaternion
do_op_quaternion, // ev_int
do_op_quaternion, // ev_uint
do_op_quaternion, // ev_short
do_op_quaternion, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_quaternion,
[ev_vector] = do_op_quatvect,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_quaternion,
[ev_int] = do_op_quaternion,
[ev_uint] = do_op_quaternion,
[ev_short] = do_op_quaternion,
[ev_double] = do_op_quaternion,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_int[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_float, // ev_float
do_op_vector, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_quaternion, // ev_quaternion
do_op_int, // ev_int
do_op_uint, // ev_uint
do_op_int, // ev_short
do_op_double, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_float,
[ev_vector] = do_op_vector,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_quaternion,
[ev_int] = do_op_int,
[ev_uint] = do_op_uint,
[ev_short] = do_op_int,
[ev_double] = do_op_double,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_uint[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_float, // ev_float
do_op_vector, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_quaternion, // ev_quaternion
do_op_uint, // ev_int
do_op_uint, // ev_uint
do_op_uint, // ev_short
do_op_double, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_float,
[ev_vector] = do_op_vector,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_quaternion,
[ev_int] = do_op_uint,
[ev_uint] = do_op_uint,
[ev_short] = do_op_uint,
[ev_double] = do_op_double,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_short[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_float, // ev_float
do_op_vector, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_quaternion, // ev_quaternion
do_op_int, // ev_int
do_op_uint, // ev_uint
do_op_short, // ev_short
do_op_double, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_float,
[ev_vector] = do_op_vector,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_quaternion,
[ev_int] = do_op_int,
[ev_uint] = do_op_uint,
[ev_short] = do_op_short,
[ev_double] = do_op_double,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_double[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_float, // ev_float
do_op_vector, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_quaternion, // ev_quaternion
do_op_int, // ev_int
do_op_uint, // ev_uint
do_op_short, // ev_short
do_op_double, // ev_double
0, // ev_long
0, // ev_ulong
do_op_invalid, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_float,
[ev_vector] = do_op_vector,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_quaternion,
[ev_int] = do_op_int,
[ev_uint] = do_op_uint,
[ev_short] = do_op_short,
[ev_double] = do_op_double,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = do_op_invalid,
};
static operation_t op_compound[ev_type_count] = {
do_op_invalid, // ev_void
do_op_invalid, // ev_string
do_op_compound, // ev_float
do_op_invalid, // ev_vector
do_op_invalid, // ev_entity
do_op_invalid, // ev_field
do_op_invalid, // ev_func
do_op_invalid, // ev_ptr
do_op_invalid, // ev_quaternion
do_op_compound, // ev_int
do_op_compound, // ev_uint
do_op_compound, // ev_short
do_op_compound, // ev_double
do_op_compound, // ev_long
do_op_compound, // ev_ulong
do_op_compound, // ev_invalid
[ev_void] = do_op_invalid,
[ev_string] = do_op_invalid,
[ev_float] = do_op_compound,
[ev_vector] = do_op_invalid,
[ev_entity] = do_op_invalid,
[ev_field] = do_op_invalid,
[ev_func] = do_op_invalid,
[ev_ptr] = do_op_invalid,
[ev_quaternion] = do_op_invalid,
[ev_int] = do_op_compound,
[ev_uint] = do_op_compound,
[ev_short] = do_op_compound,
[ev_double] = do_op_compound,
[ev_long] = do_op_compound,
[ev_ulong] = do_op_compound,
[ev_invalid] = do_op_compound,
};
static operation_t *do_op[ev_type_count] = {
op_void, // ev_void
op_string, // ev_string
op_float, // ev_float
op_vector, // ev_vector
op_entity, // ev_entity
op_field, // ev_field
op_func, // ev_func
op_pointer, // ev_ptr
op_quaternion, // ev_quaternion
op_int, // ev_int
op_uint, // ev_uint
op_short, // ev_short
op_double, // ev_double
0, // ev_long
0, // ev_ulong
op_compound, // ev_invalid
[ev_void] = op_void,
[ev_string] = op_string,
[ev_float] = op_float,
[ev_vector] = op_vector,
[ev_entity] = op_entity,
[ev_field] = op_field,
[ev_func] = op_func,
[ev_ptr] = op_pointer,
[ev_quaternion] = op_quaternion,
[ev_int] = op_int,
[ev_uint] = op_uint,
[ev_short] = op_short,
[ev_double] = op_double,
[ev_long] = 0,
[ev_ulong] = 0,
[ev_invalid] = op_compound,
};
static unaryop_t do_unary_op[ev_type_count];