zig/lib/compiler
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
..
aro std.Target: Remove sparcel architecture tag. 2024-07-30 06:30:25 +02:00
aro_translate_c fix(fmt): pointer type syntax to index (take 2) (#20336) 2024-07-21 01:55:52 -07:00
reduce reduce: fix compile errors 2024-03-24 17:29:39 +01:00
resinator Condense and extend std.Treap's traversal functionalities. (#20002) 2024-07-28 19:47:55 -07:00
aro_translate_c.zig aro_translate_c: Add a more helpful error message for error.StreamTooLong 2024-07-29 10:25:55 -07:00
build_runner.zig Watch.zig: add initial windows implementation 2024-07-27 11:32:43 -04:00
fmt.zig zig fmt: ignore hidden files and directories 2024-05-29 10:09:40 -07:00
libc.zig zig libc: allow non-native targets 2024-03-13 02:17:28 -04:00
objcopy.zig objcopy: use the fatal helper method 2024-07-12 00:14:08 -07:00
reduce.zig Rename Dir.writeFile2 -> Dir.writeFile and update all callsites 2024-05-03 13:29:22 -07:00
std-docs.zig std: restructure child process namespace 2024-05-26 09:31:55 -07:00
test_runner.zig riscv: clean up and unify encoding logic 2024-07-26 04:19:13 -07:00