Jakub Konka
1d3b714125
x64: implement shl with overflow for non-pow-2
2022-05-10 21:19:05 +02:00
Jakub Konka
d31875f7ab
x64: implement shl_with_overflow for powers of two
2022-05-10 20:53:44 +02:00
Jakub Konka
2a738599a0
x64: implement missing bits in add_with_overflow and sub_with_overflow
2022-05-10 20:45:57 +02:00
Jakub Konka
f131e41db9
x64: implement shl_exact and shr_exact
2022-05-10 19:34:20 +02:00
Jakub Konka
9725205859
x64: consolidate shifts into single MIR helper fn
2022-05-10 18:52:49 +02:00
Jakub Konka
a9514ae173
x64: handle immediate as RHS of shift bin ops
2022-05-10 18:16:14 +02:00
Jakub Konka
6a4e445f5a
x64: pull shl and shr into one helper fn
2022-05-10 17:53:53 +02:00
Jakub Konka
aef3c149e6
x64: refactor genMulDivBinOp helper
2022-05-10 17:25:49 +02:00
Jakub Konka
ef9e3fb2b6
x64: migrate div to genMulDivBinOp
2022-05-10 16:43:44 +02:00
Frank Denis
aaf4011c2c
Typo
2022-05-10 15:57:46 +02:00
Brian Gold
52651ae7a0
io_uring cancel test must tolerate CQ reordering
...
Fixes #11382 . Tested on ArchLinux 5.17.5-arch1-1.
2022-05-10 11:49:41 +02:00
Andreas Reischuck
10a671ad09
std.json stringify fix object keys are always is strings
...
* extracted outputJsonString to avoid code duplication
2022-05-10 09:56:49 +02:00
OfekShochat
b57a356bb6
std.json add stringify struct with string as array
2022-05-10 09:55:06 +02:00
Jakub Konka
85ca14e35a
x64: converge add_with_overflow and sub_with_overflow
2022-05-10 09:08:33 +02:00
Jakub Konka
af3ecd04b4
x64: make genBinOp operate on MCValues directly
2022-05-10 09:04:39 +02:00
Jakub Konka
252c5a2339
x64: migrate mod and rem into genBinOp
2022-05-10 01:15:14 +02:00
Jakub Konka
c3b7a5cc26
x64: pass tag and maybe_inst explictly to genBinOp
2022-05-09 23:58:46 +02:00
Jakub Konka
7b9f8bfbd8
x64: migrate mul to new genBinOp helper
2022-05-09 23:50:01 +02:00
Jakub Konka
20e7f1218b
x64: make one entry point for binary ops
...
* rename `genBinMathOp` into `genBinOp` and handle commutativity
* rename `genBinMathOpMir` into `genBinOpMir`
2022-05-09 22:31:36 +02:00
Luuk de Gram
62453496ba
wasm: Write nops for padding debug info
2022-05-09 18:51:46 +02:00
Luuk de Gram
2ae2ac33d9
wasm: Emit debug sections
...
This commit adds the ability to emit the following debug sections:
.debug_info
.debug_abbrev
.debug_line
.debug_str
Line information and files are now being loaded correctly by browser debuggers.
2022-05-09 18:51:46 +02:00
Luuk de Gram
9b6b7034c2
wasm: Flush debug information + commit decl
...
This implements parts to commit a decl's debug information into
a linear memory buffer. The goal is to write this buffer at once
after we finished linking.
2022-05-09 18:51:46 +02:00
Luuk de Gram
f760272200
wasm: Debug info for lines + pro/epilogue
...
Maps lines and columns between wasm bytecode and Zig source code.
While this supports prologue and epilogue information, we need to add
support for performing relocations as the offsets are relative to the code section,
which means we must relocate it according to the atom offset's offset while keeping function count
in mind as well (due to leb128 encoding).
2022-05-09 18:51:46 +02:00
Luuk de Gram
d46cdb5396
wasm: Debug information for locals
...
Implements very basic debug information for locals.
For now it only implements debug info when the variable is stored within a
Wasm local. The goal is to support those that live in the data section (virtual stack).
2022-05-09 18:51:46 +02:00
Luuk de Gram
33b2f4f382
wasm: Implement debug info for parameters
2022-05-09 18:51:46 +02:00
Luuk de Gram
8e1c220be2
wasm: Add basic debug info references
2022-05-09 18:51:46 +02:00
Helio Machado
941b6830b1
std.crypto: generate AES constants at compile time ( #11612 )
...
* std/crypto: generate AES constants at compile time
* Apply suggestions from code review
Co-authored-by: Frank Denis <124872+jedisct1@users.noreply.github.com>
* Update lib/std/crypto/aes/soft.zig
* Separate encryption and decryption tables
* Run `zig fmt`
* Increase branch quota and remove redundant align
* Update lib/std/crypto/aes/soft.zig
Co-authored-by: Frank Denis <124872+jedisct1@users.noreply.github.com>
* Rename identifiers and simplify dataflow
* Increase branch quota (again) and fix comment
Co-authored-by: Frank Denis <124872+jedisct1@users.noreply.github.com>
2022-05-09 18:50:01 +02:00
Evan Haas
94b9bcd034
stdlib: escape backslashes and double quotes in Builder response file
...
Fixes #11595
2022-05-09 18:42:42 +03:00
Jakub Konka
9c3d24ea0b
x64: add naive impl of shr
2022-05-09 17:39:19 +02:00
Andrew Kelley
d7f8368da8
Merge pull request #11609 from ziglang/win-compiler-rt
...
compiler-rt: avoid symbol collisions with Windows libc
2022-05-08 19:29:21 -04:00
Hannes Bredberg
ea3f5905f0
Add Win64 calling convention
...
Closes ziglang/zig#11585
2022-05-08 16:28:10 -04:00
Andrew Kelley
cd019ee502
compiler_rt: avoid weak aliases on Windows
...
When exporting math functions for Windows, we provide weak exports of
'l' variants rather than weak aliases. We still use aliases on other
operating systems so that the 'l' variants have one less jump
instruction in this case.
2022-05-08 13:06:21 -07:00
Andrew Kelley
6fde2fcd51
allow in-memory coercion of differently-named floats with same bits
...
For example, this allows passing a `*c_longdouble` where a `*f80` is
expected, provided that `c_longdouble` maps to `f80` for this target.
2022-05-08 13:05:16 -07:00
Jakub Konka
9416b4d993
Merge pull request #11608 from ziglang/stage2-regalloc
2022-05-08 11:20:14 +02:00
Andrew Kelley
663b67783e
compiler-rt: avoid symbol collisions with Windows libc
...
closes #11600
2022-05-07 17:44:49 -07:00
Andrew Kelley
aa05cd4809
CI: fix universal libc step name
...
This was a merge conflict that went undetected.
2022-05-07 17:44:37 -07:00
Jakub Konka
f161d3875a
Merge pull request #11605 from Luukdegram/wasm-mul-overflow
...
stage2: wasm - Improve `@mulWithOverflow` implementation
2022-05-07 23:30:08 +02:00
Jakub Konka
6bf67eada4
arm: lock dest register in shl_overflow so that we do not spill it
...
Nerf two tests - they will require further investigation, but arm
now passes all tests with the safety PR.
2022-05-07 22:53:17 +02:00
Jakub Konka
756ddf0925
arm: fix CF flags spilling and implement genSetStack for reg with overflow flags
2022-05-07 22:35:41 +02:00
Luuk de Gram
a110979582
stage2: Split @mulWithOverflow tests
2022-05-07 20:02:02 +02:00
Luuk de Gram
ad4f0dda8b
wasm: Fix @floatToInt and split overflow ops
...
As we now store negative signed integers as two's complement,
we must also ensure that when truncating a float, its value is wrapped
around the integer's size.
This also splits `@mulWithOverflow` into its own function to make
the code more maintainable and reduce branching.
2022-05-07 17:04:19 +02:00
Luuk de Gram
0c51e703f1
wasm: @addWithOverflow for bitsize 32
2022-05-07 14:24:18 +02:00
Jakub Konka
f57b059e58
regalloc: refactor locking multiple registers at once
2022-05-07 13:27:11 +02:00
Jakub Konka
bf11cdc9d8
x64: refactor code to avoid stage1 sema limitations
2022-05-07 13:19:53 +02:00
Jakub Konka
197c2a465f
regalloc: rename freeze/unfreeze to lock/unlock registers
2022-05-07 10:46:05 +02:00
Andrew Kelley
e8c85450fe
Merge pull request #11592 from ziglang/stage3-macos-linker
...
Sema: solve a false positive "depends on itself"
2022-05-07 04:38:19 -04:00
Jakub Konka
43a627927f
x64: fix misused register locks
2022-05-07 10:31:08 +02:00
Andrew Kelley
ec95e00e28
flatten lib/std/special and improve "pkg inside another" logic
...
stage2: change logic for detecting whether the main package is inside
the std package. Previously it relied on realpath() which is not portable.
This uses resolve() which is how imports already work.
* stage2: fix cleanup bug when creating Module
* flatten lib/std/special/* to lib/*
- this was motivated by making main_pkg_is_inside_std false for
compiler_rt & friends.
* rename "mini libc" to "universal libc"
2022-05-06 22:41:00 -07:00
Andrew Kelley
3b60ab4872
stage2: fix std lib tests always filtering out all tests
2022-05-06 22:41:00 -07:00
Andrew Kelley
f034cef262
link/MachO: use const instead of var and limit scope of vars
2022-05-06 22:41:00 -07:00