News for hackers. Stuff that matters.
Re:Rust's unsafe pointer types need an overhaul by staticassertion on Sunday March 20, 2022 @01:10AM (#30740324)
> I regret to inform you that x86_64 (which is probably a “major architecture”) is segmented and has three address spaces.

Can you say more? I assumed the post was referring to segmentation registers, which are not an x86_64 thing.

Re:Rust's unsafe pointer types need an overhaul by anonacct37 on Sunday March 20, 2022 @01:21AM (#30740380)
amd64 uses segment registers for TLS (such as errno).

https://stackoverflow.com/questions/6611346/how-are-the-fs-g...

Re:Rust's unsafe pointer types need an overhaul by Gankra on Sunday March 20, 2022 @01:38AM (#30740436)
hmm i've always just mentally modelled TLS as "yeah the OS slaps a pointer to an array in this one register".

but i guess the difference between "pointer to an array" and "a segment of memory" isn't actually that big?

Re:Rust's unsafe pointer types need an overhaul by amluto on Sunday March 20, 2022 @08:20AM (#30742055)
It’s a funny register: you don’t want to read it (and before Ivy Bridge, user code couldn’t read it). The base is added by the CPU when you dereference the pointer. So code like:

    __thread int array[100];
    array[n] += 5:
Effectively computes the offset portion of array+n and then, using CPU assistance, accesses that memory relative to the segment.
Re:Rust's unsafe pointer types need an overhaul by staticassertion on Sunday March 20, 2022 @01:22AM (#30740386)
Thank you! I love learning about stuff like this but I wasn't sure what to search for. Much appreciated.