1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

Filter: Dropped the setter instructions in favor of direct result storage.

This should help filter performance a bit.
This commit is contained in:
Maria Matejka
2019-05-31 17:33:41 +02:00
parent aa6c5f4d92
commit bd91338246
7 changed files with 364 additions and 260 deletions

View File

@@ -107,8 +107,15 @@ struct f_static_attr {
int readonly:1; /* Don't allow writing */
};
/* Exception bits */
enum f_exception {
FE_RETURN = 0x1,
};
/* Filter l-value type */
enum f_lval_type {
F_LVAL_STACK = 0,
F_LVAL_EXCEPTION,
F_LVAL_VARIABLE,
F_LVAL_PREFERENCE,
F_LVAL_SA,
@@ -119,6 +126,7 @@ enum f_lval_type {
struct f_lval {
enum f_lval_type type;
union {
enum f_exception exception;
const struct symbol *sym;
struct f_dynamic_attr da;
struct f_static_attr sa;