Fix tracing atomic instructions
Atomic instructions were calling the trace logging with the wrong element size,
causing assertion failures when tracing them. Fix this, and add atomic
instructions to the trace tests.
diff --git a/test/test-trace-reference/log-write b/test/test-trace-reference/log-write
index 782dcfc..0491d50 100644
--- a/test/test-trace-reference/log-write
+++ b/test/test-trace-reference/log-write
@@ -3188,3 +3188,196 @@
# z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
# ║ ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
# ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x5555555555555555 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x55 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x55 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x55 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x55 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x55a9 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x55a9 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x55a9 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x55a9 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x555556f9 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x555556f9 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x555556f9 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x555556f9 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x555555555555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x555555555555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x555555555555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x555555555555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x8d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x8d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0xb18d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0xb18d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x5555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x5555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x555555555555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x555555555555b18d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x95 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x95 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x95 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x95 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000003469d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000469d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003ff9d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003ff9d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003ff9d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0003ff9d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x0000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x000000000000009d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x9d -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x0000 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x0000 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x0000 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x0000 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x00 -> 0x~~~~~~~~~~~~~~~~
+# x0<7:0>: 0x00 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x0000 -> 0x~~~~~~~~~~~~~~~~
+# x0<15:0>: 0x0000 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<31:0>: 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+# x0<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~