# std.Target: Remove \`sparcel\` architecture tag\. · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/c8ca05e93a5ad482279c9dd95e330ed6c1027c3b)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: c8ca05e93a5ad482279c9dd95e330ed6c1027c3b

Requested commit: c8ca05e93a5ad482279c9dd95e330ed6c1027c3b

Commit: c8ca05e93a5ad482279c9dd95e330ed6c1027c3b

Tree: c80cd59dea5f48141fa3c5d81889473cde1a0d66

Author: Alex Rønne Petersen

Committer: Alex Rønne Petersen

## Message

```
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:

* https://github.com/llvm/llvm-project/blob/40b4fd7a3e81d32b29364a1b15337bcf817659c0/llvm/lib/Target/Sparc/SparcTargetMachine.cpp#L226
* https://github.com/llvm/llvm-project/blob/40b4fd7a3e81d32b29364a1b15337bcf817659c0/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.

```

## Parents

- [1e9278d718f7eec0aaad4dc296757c70e7f0f68b](https://git.cafe/gitcafe/zig/commit/1e9278d718f7eec0aaad4dc296757c70e7f0f68b?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/c8ca05e93a5ad482279c9dd95e330ed6c1027c3b?format=markdown)
