History

__builtin_expect no-op

Taken from David Mertens tcc branch on github https://github.com/run4flat/tinycc.git

seyko committed 10 years ago

Commit e010b131 parent 5ee097f2 files · +38 −0Browse files

Unified · Split

2 files
  1. tccgen.c +37 −0
  2. tcctok.h +1 −0
tccgen.c+37−0
@@ -84,6 +84,7 @@ static void block(int *bsym, int *csym, int *case_sym, int *def_sym, int case_re · 83 unmodified lines
8484 static void decl_initializer_alloc(CType *type, AttributeDef *ad, int r, int has_init, int v, int scope);
8585 static int decl0(int l, int is_for_loop_init);
8686 static void expr_eq(void);
87+static void expr_lor_const(void);
8788 static void unary_type(CType *type);
8889 static void vla_runtime_type_size(CType *type, int *a);
8990 static void vla_sp_restore(void);
@@ -3938,6 +3939,22 @@ ST_FUNC void unary(void) · 3848 unmodified lines
39383939 vtop->type.t |= VT_UNSIGNED;
39393940 break;
39403941
3942+ case TOK_builtin_expect:
3943+ {
3944+ /* __builtin_expect is a no-op for now */
3945+ int saved_nocode_wanted;
3946+ next();
3947+ skip('(');
3948+ expr_eq();
3949+ skip(',');
3950+ saved_nocode_wanted = nocode_wanted;
3951+ nocode_wanted = 1;
3952+ expr_lor_const();
3953+ vpop();
3954+ nocode_wanted = saved_nocode_wanted;
3955+ skip(')');
3956+ }
3957+ break;
39413958 case TOK_builtin_types_compatible_p:
39423959 {
39433960 CType type1, type2;
@@ -4466,6 +4483,26 @@ static void expr_or(void) · 522 unmodified lines
44664483 }
44674484 }
44684485
4486+/* XXX: fix this mess */
4487+static void expr_land_const(void)
4488+{
4489+ expr_or();
4490+ while (tok == TOK_LAND) {
4491+ next();
4492+ expr_or();
4493+ gen_op(TOK_LAND);
4494+ }
4495+}
4496+static void expr_lor_const(void)
4497+{
4498+ expr_land_const();
4499+ while (tok == TOK_LOR) {
4500+ next();
4501+ expr_land_const();
4502+ gen_op(TOK_LOR);
4503+ }
4504+}
4505+
44694506 static void expr_land(void)
44704507 {
44714508 expr_or();
tcctok.h+1−0
@@ -131,6 +131,7 @@ · 130 unmodified lines
131131 DEF(TOK_builtin_constant_p, "__builtin_constant_p")
132132 DEF(TOK_builtin_frame_address, "__builtin_frame_address")
133133 DEF(TOK_builtin_return_address, "__builtin_return_address")
134+ DEF(TOK_builtin_expect, "__builtin_expect")
134135 #ifdef TCC_TARGET_X86_64
135136 #ifdef TCC_TARGET_PE
136137 DEF(TOK_builtin_va_start, "__builtin_va_start")

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t