Commit Graph

39 Commits

Author SHA1 Message Date
Dmitry Stogov
92ef948caf Implemented code-generation for CTPOP 2023-11-16 19:28:12 +03:00
Dmitry Stogov
9b1ce974cb Improve loader interface (incomplete) 2023-10-20 01:09:46 +03:00
Dmitry Stogov
a94dddd671 Improve cross-compilation (use separate CFLAGS and BUILD_CFLAGS) 2023-10-17 11:46:42 +03:00
Dmitry Stogov
8668550427
Initial support for LLVM loader (incomplete) (#53)
Currently we may just load LLVM module and convert all functions into IR (print it).
For better LLVM support IR framework needs support for modules.
Some LLVM features are not supported yet (see TODOs in ir_load_llvm.c) .
2023-10-11 12:46:31 +03:00
Dmitry Stogov
51a37f159b Initial implementation of LLVM export 2023-09-28 20:44:45 +03:00
Dmitry Stogov
4fef47b1a5
Reimplement tester program in C and in IR independent way (#50)
* Reimplement tester program in C and in IR independent way

* Fix Windows support
2023-09-27 00:34:03 +03:00
Ilija Tovilo
9a8cbdf28c
Test Unix x86 with asan/ubsan in CI (#49) 2023-09-26 10:57:55 +03:00
Dmitry Stogov
0dbb794399
CI tests for MACOS build (#46) 2023-08-30 15:24:12 +03:00
Dmitry Stogov
0f12ea8c71 Add comments for expanded DynASM macros 2023-07-26 22:05:01 +03:00
Dmitry Stogov
cf28a299cd Fix Makefile dependencies 2023-07-04 10:03:33 +03:00
Anatol Belski
c437cc6df6 examples: Add native function call example
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-07-02 18:41:43 +02:00
Anatol Belski
187452cba2 examples: Add example for void function with pointer arg
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-06-05 16:11:27 +02:00
Dmitry Stogov
9296ff3b75 Fix examples 2023-05-23 10:24:27 +03:00
Anatol Belski
d64a2b5493 examples: Add a while loop example
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-22 22:44:47 +02:00
Anatol Belski
764f5c3985 examples: Add examples and makefiles
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-22 22:44:47 +02:00
Jim Huang
90945934c1 Fix linkage to libdl
This patch resolves undefined reference to symbols in libdl.

Error message before this:
  /usr/bin/ld: ir_emit.o: in function `ir_resolve_sym_name':
  ir_emit.c:249: undefined reference to `dlsym'
  /usr/bin/ld: ir_disasm.o: in function `ir_disasm_resolver':
  ir_disasm.c:302: undefined reference to `dladdr'
  collect2: error: ld returned 1 exit status
2023-05-08 00:26:45 +08:00
Tony Su
4b9391c8b1 [ir-test]: Enhance ir-test for Linux and Windows
This is a series of enhancements for ir-test and related Makefile
for Linux and Windows.

UpdateLog:
1) Make ir-test run from any directory
2) add --help option and print program usage
3) Enable user to specify test folders and/or files to run
4) Check unsupported option and print help usage
5) Update Makefile to use new ir-test options
6) some code refactory

Signed-off-by: Tony Su <tao.su@intel.com>
Reviewed-by  : Dmitry Stogov
Reviewed-by  : Anatol Belski
2023-04-19 19:33:36 +08:00
Anatol Belski
f8ca41119c cpu: Add framework for CPU feature handling
This comes with the initial feature to query CPUID on x86. Supported are
both GCC based build and MSVC builds targeting Windows.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-04-15 01:08:36 +02:00
Dmitry Stogov
37b94c3f04 Fix 32-bit clang build 2023-03-28 13:20:54 +03:00
Anatol Belski
5862d6a787 makefile: Integrate new test runner
This replaces the PHP script with the C++ implementation.

Signed-off-by: Anatol Belski <ab@php.net>
2023-03-10 01:28:19 +01:00
Dmitry Stogov
39f6f81b5e Fix make dependencies 2023-03-03 00:03:50 +03:00
Anatol Belski
7b3dc08b05 makefile: Simplify and regroup objects and targets
A small optimization to combine common pieces in the makefile.

- Use static pattern rules for the same operation
- Group headers prerequisities into own targets
- Reduce dups like objects to be listed just once in a var, etc.

Signed-off-by: Anatol Belski <ab@php.net>
2023-02-14 00:23:45 +01:00
Ilija Tovilo
9060407ada
Add GitHub actions 2022-11-21 20:42:07 +01:00
Dmitry Stogov
3535fd2fc4 Fix compilation warnings and signed/unsigned mess 2022-11-08 23:09:35 +03:00
Dmitry Stogov
1b84570aa3 Intoduce ir_emit.c that shuould keep common part for different targets 2022-10-26 22:06:07 +03:00
Dmitry Stogov
62c981a091 remove hardcoded dependencies 2022-10-26 21:26:24 +03:00
Dmitry Stogov
74debb0bf4 Add "ir_load.c" to allow build without llk.php and initial multi-platform support 2022-10-26 19:52:14 +03:00
Dmitry Stogov
082bcf89c9 Use ir_ctx.fixed_regset to limit available registers 2022-06-21 16:13:14 +03:00
Dmitry Stogov
4060f9ca23 Avoid hardcoded file path (use stdin instead) 2022-06-21 12:24:44 +03:00
Dmitry Stogov
00e92483bc Fix compilation warnings 2022-06-21 11:41:59 +03:00
Dmitry Stogov
f6b81b14e9 Aarch64 back-end 2022-06-06 15:27:25 +03:00
Dmitry Stogov
054a70012e Aarch64 back-end (incomplete) 2022-06-03 12:47:02 +03:00
Dmitry Stogov
00c300fc9f Start Aarch64 back-end 2022-05-31 11:22:31 +03:00
Dmitry Stogov
4eaca331b9 Allow using debug_regset in RELEASE build 2022-05-13 09:22:31 +03:00
Dmitry Stogov
4569d80218 Remove temporary test files 2022-05-06 19:19:04 +03:00
Dmitry Stogov
3c6e4c8b3a Use -O2 for release build 2022-05-05 22:37:25 +03:00
Dmitry Stogov
9ccefcf973 Support for more instruction in C backend and BOOL_NOT in x86_86 2022-04-08 19:02:11 +03:00
Dmitry Stogov
f1cc9a4ddb Added tests for unary integer instructions 2022-04-08 16:40:28 +03:00
Dmitry Stogov
2937993190 Initial import 2022-04-06 00:19:23 +03:00