TaiseiIto / hariboslinux

Haribote OSをLinux環境で開発しよう
MIT License
3 stars 0 forks source link

harib27a #83

Closed TaiseiIto closed 2 years ago

TaiseiIto commented 2 years ago

コマンドライン計算機 浮動小数点演算にも対応したい

TaiseiIto commented 2 years ago

浮動小数点演算に関する資料 http://softwaretechnique.web.fc2.com/OS_Development/Tips/X87.html

TaiseiIto commented 2 years ago

http://hrb.osask.jp/wiki/?advance/FPU

TaiseiIto commented 2 years ago

これによると,x87を使った床関数は,rounding modeを指定してFRNDINT命令を使えばよさそうだ.

TaiseiIto commented 2 years ago

invalid opcode exception発生

TaiseiIto commented 2 years ago

ライブラリの方のchain_string.cのcreate_caller_format_chain_stringでfmod関数の出力をcharにキャストしてるところがあって,chain_string.sの該当箇所を見るとcvttsd2silという見たことのない命令がある.これが怪しい.ちなみにfmod関数自体は最後まで処理が進んでいる.

TaiseiIto commented 2 years ago

Intel SDMのCVTTSD2SIの項目を見ると何やら怪しげな注意書きが NOTES:

  1. Software should ensure VCVTTSD2SI is encoded with VEX.L=0. Encoding VCVTTSD2SI with VEX.L=1 may encounter unpredictable behavior across different processor generations.
  2. For this specific instruction, VEX.W/EVEX.W in non-64 bit is ignored; the instructions behaves as if the W0 version is used.
TaiseiIto commented 2 years ago

いやでもこの注意書きはVCVTTSD2SI関連のやつだから関係ない

TaiseiIto commented 2 years ago

CPUID Feature Flag SSE2って何だろう

TaiseiIto commented 2 years ago

https://stackoverflow.com/questions/16079340/can-not-disable-sse-in-gcc gccでSSE命令を出力しないようにできる方法があるらしい

TaiseiIto commented 2 years ago

三角関数やpi, eなどの定数などに対応しよう

TaiseiIto commented 2 years ago

複素数の計算にも対応しよう