zig/lib
Alex Rønne Petersen c8ca05e93a
std.Target: Remove sparcel architecture tag.
What is `sparcel`, you might ask? Good question!

If you take a peek in the SPARC v8 manual, §2.2, it is quite explicit that SPARC
v8 is a big-endian architecture. No little-endian or mixed-endian support to be
found here.

On the other hand, the SPARC v9 manual, in §3.2.1.2, states that it has support
for mixed-endian operation, with big-endian mode being the default.

Ok, so `sparcel` must just be referring to SPARC v9 running in little-endian
mode, surely?

Nope:

* 40b4fd7a3e/llvm/lib/Target/Sparc/SparcTargetMachine.cpp (L226)
* 40b4fd7a3e/llvm/lib/Target/Sparc/SparcTargetMachine.cpp (L104)

So, `sparcel` in LLVM is referring to some sort of fantastical little-endian
SPARC v8 architecture. I've scoured the internet and I can find absolutely no
evidence that such a thing exists or has ever existed. In fact, I can find no
evidence that a little-endian implementation of SPARC v9 ever existed, either.
Or any SPARC version, actually!

The support was added here: https://reviews.llvm.org/D8741

Notably, there is no mention whatsoever of what CPU this might be referring to,
and no justification given for the "but some are little" comment added in the
patch.

My best guess is that this might have been some private exercise in creating a
little-endian version of SPARC that never saw the light of day. Given that SPARC
v8 explicitly doesn't support little-endian operation (let alone little-endian
instruction encoding!), and no CPU is known to be implemented as such, I think
it's very reasonable for us to just remove this support.
2024-07-30 06:30:25 +02:00
..
compiler std.Target: Remove sparcel architecture tag. 2024-07-30 06:30:25 +02:00
compiler_rt std.Target: Remove sparcel architecture tag. 2024-07-30 06:30:25 +02:00
docs autodoc: Preserve whitespace in inline code spans 2024-07-23 10:02:54 -07:00
include update C language headers to LLVM 18 2024-05-08 19:37:28 -07:00
init Fix typo in init files. 2024-07-26 14:33:59 -07:00
libc glibc headers: arc4random* functions added in glibc 2.36 2024-07-03 02:57:24 -04:00
libcxx update libcxx and libcxxabi to llvm 18.1.6 2024-05-20 16:12:36 -04:00
libcxxabi update libcxx and libcxxabi to llvm 18.1.6 2024-05-20 16:12:36 -04:00
libunwind libunwind: update to LLVM 18 2024-05-08 19:37:29 -07:00
std std.Target: Remove sparcel architecture tag. 2024-07-30 06:30:25 +02:00
tsan tsan: update rtl files to LLVM 17.0.6 2024-01-10 01:00:37 -07:00
c.zig Merge pull request #20389 from alexrp/riscv32 2024-07-29 16:13:35 -07:00
compiler_rt.zig stage2-wasm: bit_reverse 2024-06-16 11:53:33 +02:00
fuzzer.zig fuzzer: use the cmp values 2024-07-25 18:52:21 -07:00
zig.h zig.h: fixup pointer atomic load definitions 2024-07-26 10:42:10 -04:00