Jakob Löw
1eba11d8d5
add inversions of OP_BR_IFALSE and OP_BR_ITRUE to _jit_invert_condition
5 years ago
Aleksey Demakov
b27000841c
Make all _jit_cache_* functions static and remove the prefix; remove some commented out code
5 years ago
Aleksey Demakov
942c988db1
Fix last ChangeLog entry
5 years ago
Aleksey Demakov
3997a29821
Include jit-dump.h and jit-memory.h from jit.h
5 years ago
Tom Tromey
c608b30f38
Check for functions that are documented but not declared
This adds some code to "make check" to look for functions that are
documented but not declared in a public header. This found a few such
missing functions; this is also fixed in this patch.
Fixes #20
5 years ago
Tom Tromey
6a7e6d9eb3
Add unit test for CFG transformation
This adds a unit test for the CFG transformation patch.
5 years ago
Tom Tromey
06149d7834
Optimize a jump-around-branch case
In my Emacs JIT I noticed that sometimes libjit would emit a
conditional jump to branch around an unconditional jump, like:
7ffff7fe5160: 0f 85 05 00 00 00 jne 0x7ffff7fe516b
7ffff7fe5166: e9 0e 00 00 00 jmpq 0x7ffff7fe5179
7ffff7fe516b: 41 bf 17 00 00 00 mov $0x17,%r15d
While this can be worked around by constructing the IL a bit
differently, I was curious about the difficulty of fixing this in the
libjit optimizer.
This patch notices the specific case where a conditional branch simply
jumps around an unconditional branch. In this case, the condition is
inverted and the extra jump is eliminated.
7 years ago
Tom Tromey
d2aa30874c
Add tests/unit subdirectory
This adds a tests/unit subdirectory. This is just a bit of
infrastructure; future patches will add actual test cases here.
5 years ago
Tom Tromey
757576f7f6
Fix some warnings
This fixes a few simple warnings I ran across while building on x86-64
Fedora 28.
5 years ago
Jakob Löw
39c7c2ea38
add a changelog entry for 54e7090
, e385fd1
and f75ded9
5 years ago
Aleksey Demakov
b9cf37655d
Fix out-of-tree builds
5 years ago
Aleksey Demakov
b1b8182852
Remove JITINT64CXX macro, move jit_size_t definition.
5 years ago
Aleksey Demakov
554c9f5c75
Fix _jit_load_opcode() invocation in interpreter (thanks Jakob Löw <jakob@m4gnus.de>)
6 years ago
Ken Brown
d09676d2f3
Remove reference to __CYGWIN32__
6 years ago
Ken Brown
22d66c3c4d
Don't use Win32 API on Cygwin
6 years ago
Ken Brown
59340183e8
Remove obsolete compiler option on Cygwin
6 years ago
Jakob Löw
1c5c925b47
add a chanelog entry for the new nesting system
6 years ago
Aleksey Demakov
7da475e60b
jit-rules-x86-64.c: dont declare var in for initializer
6 years ago
Aleksey Demakov
92a44c67e7
fix a warning
6 years ago
Aleksey Demakov
1f4e7b1d86
Fix libjitdynamic.p.in (thanks Eli Zaretskii).
6 years ago
Aleksey Demakov
9ad05b4c05
Bump version to 0.1.4
6 years ago
Aleksey Demakov
d436212b0c
Fix jit_vmem_commit() return value
6 years ago
Aleksey Demakov
2f24cacb08
Insert ChangeLog entry for the last merge
7 years ago
Aleksey Demakov
ff80aabcb5
fix the problem with global registers on recompilation
7 years ago
Aleksey Demakov
7265811145
add a test case from David Meyer for a problem with global registers on recompilation
7 years ago
Jakob Löw
784f983f0f
add missing memory load when memcpy'ing small structs on x86-64
7 years ago
Aleksey Demakov
a367527522
Update ChangeLog
7 years ago
Aleksey Demakov
1bedc33a47
Update ChangeLog
7 years ago
Tom Tromey
6c06311887
Mention jit-dump.h in the documentation
I noticed that the documentation for the dumping functions did not
mention jit-dump.h. This patch updates the documentation.
7 years ago
Aleksey Demakov
9378ba1844
Fix a bug with applying nint, ptr, and long arguments
7 years ago
Aleksey Demakov
cabc691211
Fix x86-64 jump table space check
7 years ago
Aleksey Demakov
c6db966b1b
Reformat last ChangeLog entries
7 years ago
Jakob Löw
2c47e847a2
Prefer the 8 bit sign extended alu instruction encoding in x86-64
ALU instructions like add imm %rax can be encoded in multiple ways.
- the add imm32 r64 way
- the add imm32 %rax way
- or the add imm8 r64 way.
Previousely libjit preferred the second way even if the immediate was between -128 and 127.
The third way makes the operation, even when not using the rax specific opcode, two bytes shorter.
7 years ago
Aleksey Demakov
92b81340e9
Fix (perhaps) constant comparison bug
7 years ago
Jakob Löw
0bf8c43a9a
the frontend is already aligning the argument of OP_ALLOCA so the backends don't need to do it too
7 years ago
Aleksey Demakov
5cf04ce578
Fix a bug in x86-64 small block memset
7 years ago
Aleksey Demakov
bdd7a8886b
Fix thread init on windows
7 years ago
Jakob Löw
2904804a1f
add the x86-64 memset optimizations to the ChangeLog
7 years ago
Aleksey Demakov
c212bfac04
Massive jit-value.c overhaul
7 years ago
Aleksey Demakov
1470c46b9f
Massive jit-insn.c overhaul
7 years ago
Aleksey Demakov
e9b38d68a9
Big cleanup in jit-opcode-apply.h
7 years ago
Aleksey Demakov
ce2b1ef94a
Use jit_type_remove_tags() instead of jit_type_normalize() in jit-insn.c where appropriate
7 years ago
Aleksey Demakov
859ca4301f
Use jit_type_remove_tags() instead of jit_type_normalize() in jit-value.c where appropriate. Also some coding style changes
7 years ago
Aleksey Demakov
e56f1c7fe4
Use jit_type_remove_tags() instead of jit_type_normalize() in jit-rules-interp.c where appropriate
7 years ago
Aleksey Demakov
eda45a9924
Use jit_type_remove_tags() instead of jit_type_normalize() in jit-reg-alloc.c
7 years ago
Aleksey Demakov
2fdbf9c202
Use jit_type_remove_tags() instead of jit_type_normalize() in jit-apply.c. Also some coding style changes there.
7 years ago
Aleksey Demakov
accca7efeb
Use jit_type_remove_tags() instead of jit_type_normalize() in jit_type_return_via_pointer()
7 years ago
Aleksey Demakov
0a20e9264b
Add a space
7 years ago
Aleksey Demakov
fe48d1b9dc
Update ChangeLog with insn constant patch info
7 years ago
Aleksey Demakov
c58e6bab8b
Add the serial test option to AM_INIT_AUTOMAKE
8 years ago