Commit graph

6 commits

Author SHA1 Message Date
Alan Wu
f6da559d5b Put YJIT into a single compilation unit
For upstreaming, we want functions we export either prefixed with "rb_"
or made static. Historically we haven't been following this rule, so we
were "leaking" a lot of symbols as `make leak-globals` would tell us.

This change unifies everything YJIT into a single compilation unit,
yjit.o, and makes everything unprefixed static to pass `make leak-globals`.
This manual "unified build" setup is similar to that of vm.o.

Having everything in one compilation unit allows static functions to
be visible across YJIT files and removes the need for declarations in
headers in some cases. Unnecessary declarations were removed.

Other changes of note:
  - switched to MJIT_SYMBOL_EXPORT_BEGIN which indicates stuff as being
    off limits for native extensions
  - the first include of each YJIT file is change to be "internal.h"
  - undefined MAP_STACK before explicitly redefining it since it
    collide's with a definition in system headers. Consider renaming?
2021-10-20 18:19:42 -04:00
Maxime Chevalier-Boisvert
eaf039af98 Create GitHub workflow to run ASM tests (#8)
* Create GitHub workflow to run ASM tests

* Specify path

* Attempt #3

* Set bash flags to print commands, stop on first error

* Remove clear command from test_asm.sh

* Use clang
2021-10-20 18:19:34 -04:00
Jose Narvaez
4e2eb7695e Yet Another Ruby JIT!
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
2021-10-20 18:19:31 -04:00
Maxime Chevalier-Boisvert
a3b411b9c8 add and mov instruction encoding ported and tested 2021-10-20 18:19:22 -04:00
Maxime Chevalier-Boisvert
8f40a62647 Progress on x86 assembler. Encode a few simple instructions. 2021-10-20 18:19:22 -04:00
Maxime Chevalier-Boisvert
0a5dcc056e Progress on porting x86 assembler for MicroJIT 2021-10-20 18:19:22 -04:00