티스토리 뷰

스크랩

FPC 에서 target CPU 관련

likesam 2016. 2. 16. 23:09

요즈음 때아닌 라자루스를 잠깐 만져보고 FPC 3.0 덕분인지 라자루스 1.6RC2에서 한글이 이상없이 들어가는 것을 보고 깜작 놀랐다. 상용툴에 비하면 아직 이런 저런 부족하여 보이는 부분이 있으나, 이정도라면 간단한 유틸을 짜기에는 부족함이 없어 보인다. 그런데, 컴파일 옵션을 만져보던중 CPU type을 고르면 왠지 조금 더 CPU에 맞게 최적화 될 듯 하여 이것 저것 만져 보다가, 어느 것을 선택하여야 하는지 잘 모르겠다. 인터넷을 찾아 봐도 관련 정보는 잘 찾기 어렵고.


무려 11년전 자료에서 실마리를 찾았다.



PENTIUM afaik nothing new

PENTIUM2 mainly cmov and fcmov, cmov creates nice code for length (<ansistring>) or max if max is inlined:


# [14] i:=length(s);

movl U_P$PROGRAM_S,%eax

testl %eax,%eax

cmovnel -4(%eax),%eax

movl %eax,U_P$PROGRAM_I

# [15] j:=max(j,k);

movl U_P$PROGRAM_K,%ecx

movl U_P$PROGRAM_J,%edx

cmpl %ecx,%edx

cmovgl %edx,%eax

.L29:

cmovngl %ecx,%eax

movl %eax,U_P$PROGRAM_J

PENTIUM3 sse1 for usual code possible (e.g. prefetch)

PENTIUM4 sse2 for usual code possible


K6 -> Pentium

Athlon/Duron -> Pentium2

AthlonXP/Sempron -> Pentium3

Athlon64 -> Pentium4

http://fpc-pascal.freepascal.narkive.com/NLBn3XEx/selecting-target-processor 에서 발췌


대략 위와 같은 정보라면 요즘 CPU나 Atholn64 이후 CPU라면 Pentium4로 설정하면 될 듯하다.

혹은 core2duo등이라면 pentium 3 > pentium M > core 2 duo > i 계열로 계보가 이어졌을 것이니 pentiumM으로 선택하여도 될 듯하다.

pentim4는 넷버스트로 아마 도태되었겠지?

혹은 위에서와 갈이 SSE1, SSE2등으로 최적화 코드가 들어가 있다면 그냥 pentium 4로 선택하여도 될 듯하고.


이것을 어디에 물어 봐야 할 까나?

참조

http://fpc-pascal.freepascal.narkive.com/NLBn3XEx/selecting-target-processor

'스크랩' 카테고리의 다른 글

Chrome에서 flash 사용하기  (0) 2017.11.15
댓글