2024ǯ07��12��
SoftFloat��̤���ư��Х���1��signed��unsigned�������ͤ����ݤ�INT_MIN
SoftFloat��̤���ư��Х���2��RISC-V��RV64I�Ǥ�unsigned��32bit¨�ͤǤ�64bit�쥸�����ξ��32bit��0�Ȥϸ¤�ʤ�
RV64I��unsigned��32bit�ͤ�����ĥ����ʤ��Ǵؿ��˥쥸�����Ϥ������ΤϤɤ�����������
SoftFloat��̤���ư��Х���3�ˤ��⤽��ñ������ư���������黻�򥽥եȥ��������ߥ�졼����󤹤�ؿ��β�������float�ˤ���٤�
�����ơ�����ѥ���κ�Ŭ���ΥХ��ǤϤʤ��������ɤˤ�Ȥ�Ȥ��ä����꤬���߲������Ȥ��������ˤʤ�ޤ������ܺ٤Ͼåµï¿½ï¿½ó¥¯¤ò»²¾È¤ï¿½ï¿½Æ¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½
����Ĵ���β����� LLVM 18 �ζð�Ū�ʺ�Ŭ�����ܤ�������ˤ��ޤ������ʲ��Τ褦�� float �� uint32_t �Ȥ��ư��������ӥåȤ���Ӥ��륳���ɤ���
aSign = a >> 31; bSign = b >> 31; if ( aSign != bSign ) { ... }RV64I �������åȤǤ� uint32_t �Ǥ��äƤ��� 64 bit ������ĥ�����Ȥ��� RISC-V �θƤӽФ���������Ѥ�����64 bit �Ρ�xor ���ä����ӥåȡ�bit 31 �ǤϤʤ� bit 63�ˤ� 1���Ĥޤ���ο��ʤ�����ӥåȤ��ۤʤ�ΤǼ��˥����ס�Branch Less Than Zero; bltz�ˤȤ��������ɤ���������ޤ�����
xor a2, a1, a0 bltz a2, 0x1cLLVM 17 �ޤǤϡ��ʲ��Τ褦�˲��� 32 bit �� 31 bit ���������եȡ�Shift Right Logical Immediate Word; srliw�ˤ�����ӡ�Branch Not Equal; bne�ˤȤ�����ľ�ʥ����ɤ��ФƤ��ޤ��������Τ�������Τ��륳���ɤǤ�����̤�ư��Ƥ����ΤǤ���
srliw a2, a0, 0x1f srliw a3, a1, 0x1f bne a2, a3, 0x38����ʺ�Ŭ�������ä����ɤ���ä���¸��Ǥ���ΤǤ��礦����Ĵ�٤Ƥߤޤ�����
³�����ɤ�
2024ǯ07��11��
������̤���ư��Х��פȸƤ֤Τ�Ŭ�ڤʤΤ��ϼ���������ޤ��󤬡������餯�ץ�����ޤˤ� ��uint32_t �� 31 �ӥåȱ����եȤ�����硢bit 0 �ʳ������� 0 �ˤʤꡢ0x0 �� 0x1 �Τɤ��餫��ɬ���ʤ�פȤ������ۤβ��꤬���ä��ΤǤϤʤ����Ȼפ�졢�����Ȥϸ¤�ʤ��Ȥ�����̣��̤���ư��Х��Ȥ��ޤ���������ε����Ǥ�
����ѥ���饤�󥿥���ؿ��� C ������ͤ����ƤǤϤʤ��������˥���ѥ���μ����ȷ�ӤĤ�����Ρʥ����������ΰ����ȹͤ�����ˤʤΤǡ��ʤ�Ǥ⤢��ʤΤǤ��礦��
�ǤϤʤ� compiler-rt �δؿ�������פʤΤ����Ȥ������䤬���ޤ�ޤ������ɤ���쥸�����Ϥ�����Ƥ����ͤ���٥����å��˽ñ¤¹ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Õ¤ï¿½ï¿½ï¿½ï¿½Ñ´ï¿½ï¿½ï¿½ï¿½Æ°ï¿½ï¿½Ã¤Æ¤ï¿½ï¿½ë¤«ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½×¤Ê¤è¤¦ï¿½Ç¤ï¿½ï¿½ï¿½ï¿½Ê¤É¤È¤ï¿½ï¿½Þ¤ï¿½ï¿½ï¿½ï¿½Æ½ï¿½ï¿½ï¿½é¤»ï¿½Æ¤ï¿½ï¿½Þ¤ï¿½ï¿½Þ¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ä´ï¿½Ù¤Þ¤ï¿½ï¿½ï¿½ï¿½ï¿½
���⤽������� __ltsf2 ���ϤäƤ���Τ� float ���Τ褦�ǡ����Τޤ� uint32_t �ǰ��äƤϤ����ʤ��Τ��⤷��ޤ���
³�����ɤ�
2024ǯ07��10��
RISCV RV64I �Ǥ� unsigned �� 32 bit �͡�uint32_t�ˤǤ��äƤ⡢������ѥ쥸������Ǥ�����ĥ���줿���ǰ����ޤ����㤨�� f(uint32_t) �ؿ��� f(0xc0000000) ���Ϥ�����硢���������Ϥ� a0��x10�˥쥸�����ˤ� 0x00000000c0000000 �ǤϤʤ� 0xffffffffc0000000 ���Ϥ�ޤ���Clang ����ѥ���⤳�λ��ͤ�����Ȥ�����Ŭ����ԤäƤ��ޤ���
�ʤ�С�����ĥ����ʤ����� 32 bit �ͤ��ؿ��˥쥸�����Ϥ�����Ƥ����ʤ�С�����ϥХ��ǤϤʤ������Ȥ������䤬���ޤ�ޤ������⤽�⤳���ͤϤɤ������褿�ΤǤ��礦����Ĵ�٤Ƥߤޤ�����
³�����ɤ�
2024ǯ07��05��
����ε����Ǥϴο��ʤ��Ȥ��˺�줿�ΤǤ�����libc �Ρ�fp ���եȥ��������ߥ�졼�����פȤϡ��Ĥޤ� libc �ǥ���ѥ����󥿥���饤�֥���GCC �� libgcc �� LLVM �� compiler-rt�ˤδؿ���������Ƥ���Ȥ������ȤǤ���FPU ��̵���������åȤǤϡ�����ѥ���� fp ̿�������ˤ��δؿ���ƤӽФ��ޤ���
�ʤ���������ݤʤ��Ȥ򤷤Ƥ��뤫�Ȥ����ȡ�libgcc �� compiler-rt �� fenv.h ���θ��������� FE_TONEAREST �� fp �黻��Ԥ�������Ȼפ��ޤ�������Ū�ˤ� FPU ��̵�� CPU �Ǵݤ������ι�θ��ɬ�פˤʤ�褦�ʥץ�������¹Ԥ��륱�����ϵ����Ȼפ��ޤ�����NetBSD �ˤϤ�����꤬����ΤǤ��礦�������Ҥ�Ǥ���¤����ƤΥ��ݡ��ȥ������åȤ�ɸ��˽�򤷤�ư���Ԥ�����ѥ���ġ�������������ʤ��ܻؤ��Ƥ��ޤ�����
³�����ɤ�
2024ǯ07��04��
http://www.jhauser.us/arithmetic/SoftFloat.html
���ҤΥ���ѥ���ġ�������������� exeClang �� NetBSD �� libc ����Ѥ��Ƥ���ΤǤ�����LLVM 18 �Ǥγ�ȯ��� RISC-V �� RV64 IMA��noFPU�˥������åȤ򤤤Ĥ�Τ褦�˾��ѥ���ѥ���ƥ��ȥ������Ȥˤ�����ȡ����� fail �� 1 ��ȯ�����ޤ�����
���θ������ɵ椷�ƹԤ������ǡ����� SoftFloat ��̤���ư���Undefined Behavior; UB�ˤ� 2 ��ȯ�������ΤǾҲ𤷤ޤ�������Ϥ��Τ��� 1 ���ܤǤ���
³�����ɤ�
2024ǯ06��27��
MinGW64 �������߿��� Microsoft Visual C++ �� msvcrt �� C RunTime��CRT�˥饤�֥��˻��Ѥ��ޤ������� UCRT64 �� Windows 10 ������Ѳ�ǽ�� Universal CRT ����Ѥ��ޤ�����UCRT64 �� 2020 ǯ�������鳫ȯ���Ϥޤä����Ū�������Ķ��Ǥ�����
���ޤǤϤɤ����Ʊ���褦�ʤ�Τ��ȻפäƤ����Τ������� MinGW64 ��Ȥ�³���Ƥ��ޤ�������Ʊ���С������� QEMU �� UCRT �ǡ�mingw-w64-ucrt-x86_64-qemu�ˤϴ����̤�ư���Τˡ�MinGW64 �ǡ�mingw-w64-x86_64-qemu�ˤ�ư���ʤ�������������ޤ�������������̤���ͳ��̵���¤� UCRT64 �Ķ���Ȥ����Ȼפ��ޤ���
�ܺ٤ϰʲ��ˤʤ�ޤ���
³�����ɤ�
2023ǯ12��06��
³�����ɤ�
2023ǯ10��26��
�ʲ��������ݤ�ȯ������Ǿ������륹����ץȤȤʤ�ޤ���
#!/bin/bash -xe export LIBFLAGS="c:/ d:/" /c/msys64/mingw64/bin/gcc.exe -v &> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.txt³�����ɤ�
2023ǯ04��28��
https://www.kmckk.co.jp/pdf/20211020_solid_press.pdf
����Ȥ��ä˴ط��ʤ���������� Rust �ǽ񤫤줿�饤�֥���٥��᥿��Ķ��ǻȤ�ɬ�פ��ФƤ����Τǡ��٤�Ф��ʤ��� Rust ���ٶ���Ϥ�ޤ�����
�ޤ��Ϥ��Υ��塼�ȥꥢ����äƤߤ��ꡢͽ�۳��ˤ��������ϥޤäƤ��ޤ�������⾯�ʤ��ƺ��ä��Τǡ����ޤ����ä���ˡ���⤷�Ƥ����ޤ����ʻ��鿴�ԤʤΤǡ����Τ�������������Ȥϸ¤�ޤ��󡣡�
AArch64 Bare-Metal program in Rust
https://lowenware.com/blog/aarch64-bare-metal-program-in-rust/
³�����ɤ�
2023ǯ04��26��
�ǽ�Ū�ˡ��ǤⲦƻ�Ǥ��� MSYS2 �ǥӥ�ɤ�������������ư���ǧ�Ǥ��ޤ��������λ��Υ��Ǥ���
³�����ɤ�
2022ǯ07��28��
³�����ɤ�
2021ǯ06��14��
�Ƕ�Rust�Ȥ����������ץ�����ߥ󥰸��줬¿����ʬ������ܤ���ӤƤ��ޤ���Rust��C++�Τ褦�����٥�ʥ���ѥ��뷿����Ǥ���⤤��Ψ��ư�����������Ϥʷ������ƥ�������������ݾڤ��뤿��λ��Ȥߤ������Ƥ��ꡢ�Х��ξ��ʤ������ɤ�񤯤��Ȥ��Ǥ��ޤ����ܵ����Ǥϡ�TOPPERS�����ͥ�����Ҥ�SOLID-OS���Rust�ǽ񤫤줿�ץ�������ư�����������ͥ�API����Ѥ�����ˡ��Ҳ𤷤ޤ���
³�����ɤ�2021ǯ04��14��
����ޤ� Clang �� GCC �˰�¸���Ƥ��ꡢLLVM �ץ��������ȤΥ����������ɤΤߤǴ����ʥ���������ѥ����ӥ�ɤ��뤳�ȤϤǤ��ʤ��ʤ��Τ��ᡢGCC �Υإå���饤�֥��򤽤Τޤ޻Ȥ������ʤ��ˤȤ���ǧ���Ǥ��������θ���ϡ�CMake �������ʡ�a.out ��������ǽ�ʡ�C/C++ ����ѥ�����׵᤹��Τǡ�Clang �Υ�󥿥���饤�֥��Ǥ��� compiler-rt �� Clang ���Ȥǥӥ�ɤ�����ˡ���狼��ʤ��ä�����Ǥ�����ĤǤ� GCC �ǥ饤�֥���ӥ�ɤ��Ƥ��ޤ��ȡ����Υ饤�֥��� GCC �Υإå��˰�¸���뤳�Ȥˤʤ�Τǡ�¾�Υ饤�֥�������Ʊ�� GCC �ǥӥ�ɤ��ʤ���Фʤ�ޤ���
�������Ƕᤤ������Ĵ�٤Ƥ��ơ��¤Ϥ��줬��ǽ�Ǥ��뤳�Ȥ��狼��ޤ�����
���������ʲ������¤�����ޤ����ʤ��ε����Ǥ� RISC-V �򥿡����åȤȤ��ޤ���¾�Υ������åȤǤϰʲ������¤�̵����ǽ��������ޤ�����
- LLVM �Υ�� LLD �� RISC-V �Υǥե���ȤǤ��� -mrelax ���ץ�����Linker optimization/relaxation�ˤΥ��ݡ��Ȥ������ǤϤʤ��ʤɡ��͡������꤬���뤿�ᡢ��󥫤Τ� Binutils �� GNU ld ����Ѥ��ޤ���
- LLVM �� C++ ��󥿥������ libc++abi �� C++ �饤�֥�� libc++ �� newlib �Ǥϥӥ�ɤǤ��ʤ��褦�ʤΤǡ������ C ����ѥ���Τߥӥ�ɤ��ޤ�����libc++abi �μ����˻��Ѥ���� C++ �㳰�μ��� libunwind �ϥӥ�ɲ�ǽ�Ǥ�����C �ξ������פʤΤǺ���ϳ䰦���ޤ�����
- RISC-V ̿�᥻�åȥ��ߥ�졼���� spike �Ȱ��˻��Ѥ��� pk �����ͥ뤬 clang �Ǥϥӥ�ɤǤ��ʤ��褦�ʤΤǡ�spike/pk �Ϻ���ϥӥ�ɤ����������δĶ��� GCC ��Ȥäƥӥ�ɤ�����Τ���Ѥ��ޤ�����OVPsim ��̵���Ǥϸ��� V ��ĥ�򥵥ݡ��Ȥ��Ƥ��ʤ����꤬����ޤ�����
³�����ɤ�
2021ǯ02��19��
Clang �ξ�硢CMake �ǤɤΤ褦�����ꤹ����ɤ��Τ��Ȥ���Windows �Х��ʥ��������ǽ�� clang �� Ubuntu ��˸�������ʤ��ä���clang ��ӥ�ɤ���ˤϡ�MinGW gcc �ǤϤʤ���clang ��ɬ�סˤʤɤ���ͳ�ˤ�ꡢ����ޤǤ� VisualStudio ��Ȥä� Windows ��ǥӥ�ɤ��Ƥ��ޤ�����
���󡢰ʲ��ε����� llvm-mingw ��¸�ߤ��Τꡢ̵�����ʥǥ����󥯥����ӥ�ɤ��������ޤ�����
³�����ɤ�
2021ǯ02��05��
�����˥ӥ�ɴĶ����ä��Τǡ����λ��Υ��Ǥ���
³�����ɤ�