https://github.com/golang/go/blob/6178d25fc0b28724b1b5aec2b1b74fc06d9294c7/src/crypto/cipher/xor_amd64.go#L18
이거 cpu에서 지원하면 386도 가능하지 않나? 386은 그냥 fastXor
https://github.com/golang/go/blob/6178d25fc0b28724b1b5aec2b1b74fc06d9294c7/src/crypto/cipher/xor_generic.go#L45
이거 돌려버리던데 이렇게 하는 이유가 있는지 궁금하네
// amd64 must have SSE2 amd64쪽 주석 보니까 바이너리 안에서 선택적 명령어 지원을 못 하는거냐?
AMD64는 SSE2를 무조건 지원함 아예 스펙에 AMD64면 SSE2를 지원해야 된다고 되어 있음 고언어 컴파일러가 최대한 호환성을 유지한 generic한 바이너리를 만들기 때문에 x86에선 SSE2를 안 쓰는거고 x86에서 SSE2를 쓰고 싶으면 CPU가 SSE2를 지원하는지 확인하고 SSE2를 사용하는 코드를 프로그래머가 작성하면 됨
깔끔한 답변 고맙다
무조건 지원한다기 보다는 디폴트 명령어 집합으로 편입되었다는게 나한테는 좀 더 와닿는 느낌