Jakub Konka
df7db0c4be
x86_64: pass behavior tests PIC and non-PIC
2023-10-28 03:48:18 -04:00
Jakub Konka
2be1250f24
x86_64: no more load/lea_symbol weirdness
2023-10-28 03:48:18 -04:00
Jakub Konka
9a1fbb2705
x86_64: rename load/lea_memory to load/lea_symbol
2023-10-28 03:48:18 -04:00
Jakub Konka
a6a10d9c2b
x86_64: do not hardcode memory passed by Elf linker
2023-10-28 03:48:18 -04:00
Jacob Young
a440cf6d44
x86_64: fix c abi test failures
2023-10-27 23:31:20 -04:00
Jacob Young
b0cf620fe3
x86_64: fix cond_br
2023-10-27 03:33:49 -04:00
Jacob Young
42bca3e2ee
x86_64: fix @memset
2023-10-27 01:40:27 -04:00
Jacob Young
434a7db986
x86_64: add missing spill
2023-10-27 01:40:27 -04:00
Jacob Young
6ad22cd964
x86_64: add missing spills
2023-10-26 22:35:38 -04:00
Jacob Young
98cd378208
x86_64: fix behavior of getValue
...
Old behavior renamed to `getValueIfFree`.
2023-10-26 21:45:58 -04:00
Jacob Young
5e83441096
x86_64: implement @divFloor and @mod for i128
2023-10-26 21:45:57 -04:00
Jacob Young
b55377a5ab
x86_64: pass more tests
...
* 128-bit integer multiplication with overflow
* more instruction encodings used by std inline asm
* implement the `try_ptr` air instruction
* follow correct stack frame abi
* enable full panic handler
* enable stack traces
2023-10-25 04:28:30 -04:00
Jacob Young
f7482a5c95
x86_64: implement inline asm GOT reference for PIC targets
2023-10-23 22:42:18 -04:00
Jacob Young
8f69e977f1
x86_64: implement 128-bit builtins
...
* `@clz`
* `@ctz`
* `@popCount`
* `@byteSwap`
* `@bitReverse`
* various encodings used by std
2023-10-23 22:42:18 -04:00
Jacob Young
fbe8c8938b
x86_64: implement @mod for floating-point types
2023-10-23 22:42:18 -04:00
Jacob Young
fe93332ba2
x86_64: implement enough to pass unicode tests
...
* implement vector comparison
* implement reduce for bool vectors
* fix `@memcpy` bug
* enable passing std tests
2023-10-23 22:42:18 -04:00
Jacob Young
27fe945a00
Revert "Revert "Merge pull request #17637 from jacobly0/x86_64-test-std""
...
This reverts commit 6f0198cadb .
2023-10-22 15:46:43 -04:00
Andrew Kelley
6f0198cadb
Revert "Merge pull request #17637 from jacobly0/x86_64-test-std"
...
This reverts commit 0c99ba1eab , reversing
changes made to 5f92b070bf .
This caused a CI failure when it landed in master branch due to a
128-bit `@byteSwap` in std.mem.
2023-10-22 12:16:35 -07:00
Jacob Young
2e6e39a700
x86_64: fix bugs and disable erroring tests
2023-10-21 10:55:41 -04:00
Jacob Young
c880644d92
x86_64: disable difficult std tests and hack around more zero-bit types
2023-10-21 10:55:41 -04:00
Jacob Young
9358a7528f
x86_64: fix crashes
2023-10-21 10:55:41 -04:00
Jacob Young
d8f7c79298
x86_64: improve inline assembly support
...
* C++-style comments
* indirect call operands
* fix misleading immediate debug formatting
2023-10-18 13:57:28 -04:00
Jakub Konka
eb5276c94e
Merge pull request #17556 from ziglang/elf-link-zig-proper
...
elf: port 99% of zld ELF linker to Zig proper
2023-10-17 17:36:40 +02:00
Jacob Young
cfa247e53b
x86_64: fix C abi argument passing in memory
2023-10-17 10:41:48 -04:00
Jakub Konka
6993b3e23e
codegen: refactor .actual_got into .extern_got
2023-10-16 19:33:06 +02:00
Jakub Konka
45197ea7ad
codegen+elf: lower imported data refs
2023-10-16 19:33:06 +02:00
Jakub Konka
17635e4f2a
x86_64: add -fPIC support targeting ELF
2023-10-16 19:33:06 +02:00
Jakub Konka
7be983ac92
elf: create new synthetic section ZigGotSection
2023-10-16 19:33:05 +02:00
Jacob Young
922b5b5453
x86_64: implement 128-bit integer multiply and divide
2023-10-09 05:23:23 -04:00
Jacob Young
d559c61902
x86_64: implement @min and @max for 128-bit integers
2023-10-09 03:11:41 -04:00
Jacob Young
21948d7540
x86_64: implement @abs of 128-bit integers
2023-10-09 03:11:41 -04:00
Jacob Young
a96c08c1d1
x86_64: implement struct field value for register pairs
2023-10-09 03:11:40 -04:00
Jacob Young
f28b1657aa
x86_64: implement 128-bit integer shifts in registers
2023-10-09 03:09:01 -04:00
Jacob Young
b5dedd7c00
x86_64: implement @mulAdd of floats for baseline
2023-10-08 04:41:55 -04:00
Jacob Young
35c9b717f7
x86_64: implement @rem for floats
2023-10-08 04:41:55 -04:00
Jacob Young
3bf9a8feb5
x86_64: fix @divTrunc and @divFloor of f16
2023-10-08 04:41:55 -04:00
Jacob Young
9fc9235ac8
x86_64: fix undersized vector binary operations
2023-10-08 04:41:55 -04:00
Jacob Young
f6e027da32
x86_64: fix conversions between floats and 128-bit integers
2023-10-08 04:41:55 -04:00
Jacob Young
b8f00ae337
x86_64: implement @abs for some integer vector types
2023-10-08 04:41:55 -04:00
Jacob Young
24d76500d2
x86_64: fix bitcast from f80
2023-10-08 04:41:55 -04:00
Jacob Young
24c67992e0
x86_64: hack around silent f80 miscompilations
...
The x87 kind sucks.
2023-10-07 19:47:46 -04:00
Jacob Young
b19fd485b1
x86_64: improve inline assembly support
...
* instruction prefixes
* mnemonic fixes
* labels
* memory operands
* read-write constraint modifier
* register and memory alternative constraint
2023-10-07 16:02:01 -04:00
Jacob Young
7436f3efc9
x86_64: implement C var args
2023-10-07 02:10:34 -04:00
Jacob Young
20b4401cde
x86_64: implement negation and @abs for f80
...
Also implement live-outs since the x87 requires so much care around
liveness tracking.
2023-10-07 00:29:17 -04:00
Jacob Young
5aeb13c350
x86_64: implement f80 movement
2023-10-07 00:29:17 -04:00
Jacob Young
9f8b2ff9e2
x86_64: fix C abi typos
2023-10-07 00:29:17 -04:00
Jacob Young
54b2d6f072
x86_64: implement C abi for everything else
2023-10-05 04:38:25 -04:00
Jacob Young
cc6694a323
x86_64: implement C abi for f128
2023-10-05 04:10:38 -04:00
Jacob Young
c2ec518fe2
x86_64: refactor calling convention checks
2023-10-05 00:19:25 -04:00
Jacob Young
644d943861
x86_64: implement 128-bit integer comparisons
2023-10-04 16:26:56 -04:00