officially joining the #x86 haters club cuz wtf is this? why are rsp and rbp encoded differently?

0: f2 0f 10 00 movsd xmm0,QWORD PTR [rax]
4: f2 0f 10 01 movsd xmm0,QWORD PTR [rcx]
8: f2 0f 10 02 movsd xmm0,QWORD PTR [rdx]
c: f2 0f 10 03 movsd xmm0,QWORD PTR [rbx]
10: f2 0f 10 04 24 movsd xmm0,QWORD PTR [rsp]
15: f2 0f 10 45 00 movsd xmm0,QWORD PTR [rbp+0x0]
1a: f2 0f 10 06 movsd xmm0,QWORD PTR [rsi]
1e: f2 0f 10 07 movsd xmm0,QWORD PTR [rdi]

@190n Because they needed to pack things so they special cased RBP such that, the encoding for RBP indirect is RIP-relative and real RBP indirect is RBP indirect with a 0 displacement