Pavlas, Zdenek
0486939291
win32: support "-Wl,--large-address-aware" option
2016-12-30 03:01:33 -08:00
Pavlas, Zdenek
7e7f2e5d1b
bcheck: access fields of local structs w/o bcheck
...
Revert previous commit, this is probably a better fix.
2016-11-10 05:15:07 -08:00
Pavlas, Zdenek
550e861bf7
bcheck: add structs to local regions
...
int test()
{
struct { int i; } s = { 42 };
return s.i; // bound checked
}
2016-11-09 04:11:40 -08:00
Pavlas, Zdenek
cdf715a0b5
i386 + bcheck: fix __bound_local_new
...
With -b, this produces garbage. Code to call __bound_local_new
is put at wrong place, overwriting the regparam setup code.
Fix copied from x86_64-gen.c.
void __attribute__((regparm(3)))
fun(int unused)
{
char local[1];
}
2016-11-09 01:04:45 -08:00
Pavlas, Zdenek
7bd30a488a
gcase() clean up
...
remove tail recursion, simplify
2016-10-11 02:05:02 -07:00
Pavlas, Zdenek
f795e1be83
switch: binary search
2016-10-03 03:14:34 -07:00
Pavlas, Zdenek
da63695cf3
switch: fix label sorting
2016-10-03 00:43:28 -07:00
Pavlas, Zdenek
e238e6521b
gtst_addr(): short conditional jumps (i386, x86_64)
2016-09-30 07:33:20 -07:00
Pavlas, Zdenek
fc0fc6aba3
switch: collect case ranges first, then generate code
...
Collect cases first, then emit lookup code. Elliminates
jumps to implement pass-through and jumps to link cases.
2016-09-30 07:33:20 -07:00
Pavlas, Zdenek
c948732efa
x86_64/elf: only variadic calls need rax
2016-08-17 06:23:15 -07:00
Pavlas, Zdenek
71b6220963
tccgen: return: avoid jmp to retsym if possible
...
When 'return' is the last statement of the top-level block
(very common and often recommended case) jump is not needed.
2016-08-11 05:02:40 -07:00