¿ôÃÍ·×»»¥¬¥¤¥É ¥Û¡¼¥àÌܼ¡Á°¥Ú¡¼¥¸¤Ø¼¡¥Ú¡¼¥¸¤Øº÷°ú


ÉÕÏ¿ B

SPARC ¤ÎÆ°ºî¤È¼ÂÁõ

¤³¤ÎÉÕÏ¿¤Ç¤Ï¡¢SPARC ¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤Ç»ÈÍѤµ¤ì¤ëÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È (FPU) ¤Ë´ØÏ¢¤¹¤ëÌäÂê¤òÀâÌÀ¤·¤Þ¤¹¡£Æäˡ¢³Æ¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤ËºÇŬ¤Ê¥³¡¼¥ÉÀ¸À®¥Õ¥é¥°¤ò³ÎÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£

ÉâÆ°¾®¿ôÅÀ¥Ï¡¼¥É¥¦¥§¥¢

¤³¤ÎÀá¤Ç¤Ï¡¢Â¿¿ô¤Î SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤ò°ìÍ÷¤Ç¼¨¤·¡¢¤½¤ì¤é¤¬¥µ¥Ý¡¼¥È¤¹¤ëÌ¿Î᥻¥Ã¥È¤ÈÎã³°½èÍýµ¡Ç½¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ÉâÆ°¾®¿ôÅÀ¤Î¥È¥é¥Ã¥×»þ¤ËȯÀ¸¤¹¤ë¾õ¶·¡¢¥È¥é¥Ã¥×¤µ¤ì¤ë¥¢¥ó¥À¡¼¥Õ¥í¡¼¤È¥È¥é¥Ã¥×¤µ¤ì¤Ê¤¤¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î°ã¤¤¡¢IEEE °Ê³°¤Î (Èóɸ½à) »»½Ñ¥â¡¼¥É¤Î SPARC ¤Î¼ÂÁõ¤Ç¤ÎŬÀڤʽèÍý¤Ê¤É¤Ë´Ø¤¹¤ë´Êñ¤ÊÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØSPARC Architecture Manual, Version 8¡Ù¤ÎÉÕÏ¿ N¡ÖSPARC IEEE 754 Implementation Recommendations¡×¤ª¤è¤Ó¡ØSPARC Architecture Manual, Version 9¡Ù¤ÎÉÕÏ¿ B ¡ÖIEEE std 754-1985 Requirements for SPARC-V9¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

ɽ B-1 ¤Ë¡¢SPARC ¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤Ç»ÈÍѤµ¤ì¤ëÉâÆ°¾®¿ôÅÀ¥Ï¡¼¥É¥¦¥§¥¢¤ò¼¨¤·¤Þ¤¹¡£½é´ü¤ÎÂçÉôʬ¤Î SPARC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢TI ¤Þ¤¿¤Ï Weitek ¤Ç³«È¯¤µ¤ì¤¿¥â¥Ç¥ë¤Ë¤â¤È¤Å¤¯ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£

¤³¤ì¤é 2 ¼ïÎà¤Î FPU ¤Ï¾¤Î¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¥Ù¥ó¥À¡¼¤Ë¥é¥¤¥»¥ó¥¹Ä󶡤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢SPARC ¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¾¤ÎȾƳÂΥ᡼¥«¡¼¤Î¥Á¥Ã¥×¤¬»ÈÍѤµ¤ì¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£Â¾¥á¡¼¥«¡¼¥Á¥Ã¥×¤Î°ìÉô¤Ï¡¢¼¡¤Îɽ¤Ë¤â¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ɽ B-1   SPARC ÉâÆ°¾®¿ôÅÀ¥ª¥×¥·¥ç¥ó 
FPU ÀâÌÀ¤Þ¤¿¤Ï
¥×¥í¥»¥Ã¥µÌ¾
Ŭ¹ç¤¹¤ë¥Þ¥·¥ó È÷¹Í ºÇŬ¤Ê -xchip ¤È
-xarch
Weitek 1164/1165 ¥Ù¡¼¥¹¤Î FPU ¤Þ¤¿¤Ï FPU ¤Ê¤· ¥«¡¼¥Í¥ë¤¬ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë µì¼° ÃÙ¤¤¤¿¤á¿ä¾©
¤Ç¤­¤Ê¤¤
-xchip=old -xarch=v7
TI 8847 ¥Ù¡¼¥¹¤Î FPU TI 8847; ÉÙ»ÎÄÌ¡¢¤Þ¤¿¤Ï LSI À½¥³¥ó¥È¥í¡¼¥é Sun-4/1xx Sun-4/2xx Sun-4/3xx Sun-4/4xx SPARCstation 1 (4/60) 1989 ÂçÉôʬ¤Î SPARCstation 1 ¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤Ï Weitek 3170 ¤ò
ÅëºÜ
-xchip=old -xarch=v7
Weitek 3170 ¥Ù¡¼¥¹¤Î FPU
SPARCstation 1 (4/60) SPARCstation 1+ (4/65) 1989, 1990 -xchip=old -xarch=v7
TI 602a
SPARCstation 2 (4/75) 1990 -xchip=old -xarch=v7
Weitek 3172 ¥Ù¡¼¥¹¤Î FPU
SPARCstation SLC (4/20) SPARCstation IPC (4/40) 1990 -xchip=old -xarch=v7
Weitek 8601
¤Þ¤¿¤Ï Fujitsu 86903
Åý¹ç²½¤µ¤ì¤¿ CPU ¤Þ¤¿¤Ï FPU SPARCstation IPX (4/50) SPARCstation ELC (4/25) 1991 IPX ¤Ï 40 MHz CPU/FPU¡¢ELC ¤Ï 33 MHz ¤ò»ÈÍÑ -xchip=old -xarch=v7
Cypress 602 Mbus ¥â¥¸¥å¡¼¥ë¤Ë¸ºß SPARCserver 6xx 1991 -xchip=old -xarch=v7
TI TMS390S10
(STP1010)
microSPARC-I SPARCstation LX SPARCclassic 1992 ¥Ï¡¼¥É¥¦¥§¥¢¤Ë FsMULd ¤Ï
´Þ¤Þ¤ì¤Ê¤¤
-xchip=micro -xarch=v8a
Fujitsu 86904
(STP1012)
microSPARC-II SPARCstation 4 and 5 SPARCstation Voyager ¥Ï¡¼¥É¥¦¥§¥¢¤Ë FsMULd ¤Ï
´Þ¤Þ¤ì¤Ê¤¤
-xchip=micro2 -xarch=v8a
TI TMS390Z50
(STP1020A)
SuperSPARC-I SPARCserver 6xx SPARCstation 10 SPARCstation 20 SPARCserver 1000 SPARCcenter 2000
-xchip=super -xarch=v8
STP1021A SuperSPARC-II SPARCserver 6xx SPARCstation 10 SPARCstation 20 SPARCserver 1000 SPARCcenter 2000
-xchip=super2 -xarch=v8
Ross RT620 hyperSPARC SPARCstation 10/HSxx SPARCstation 20/HSxx
-xchip=hyper -xarch=v8
Fujitsu 86907 TurboSPARC SPARCstation 4 ¤È 5
-xchip=micro2 -xarch=v8
STP1030A UltraSPARC-I Ultra-1, Ultra-2 Ex00 V9+VIS -xchip=ultra -xarch=v8plusa
STP1031 UltraSPARC-II Ultra-2, E450 Ultra-30, Ultra-60, Ultra-80, Ex500 Ex000, E10000 V9+VIS -xchip=ultra2 -xarch=v8plusa
SME1040 UltraSPARC-IIi Ultra-5, Ultra-10 V9+VIS -xchip=ultra2i -xarch=v8plusa


¤³¤Îɽ¤ÎºÇ¸å¤ÎÎó¤Ï¡¢¤½¤ì¤¾¤ì¤Î FPU ¤Ç¤â¤Ã¤È¤â¹â®¤Ê¥³¡¼¥É¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥³¥ó¥Ñ¥¤¥é¥Õ¥é¥°¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î¥Õ¥é¥°¤Ï¡¢2 ¤Ä¤ÎÆÈΩ¤·¤¿¥³¡¼¥ÉÀ¸À®Â°À­¤òÀ©¸æ¤·¤Þ¤¹¡£-xarch ¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬»ÈÍѤǤ­¤ëÌ¿Î᥻¥Ã¥È¤ò·èÄꤷ¤Þ¤¹¡£-xchip ¥Õ¥é¥°¤Ï¡¢¥³¡¼¥É¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ë¤ª¤±¤ë¥×¥í¥»¥Ã¥µ¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ÆÃÀ­¤Ë¤Ä¤¤¤Æ¥³¥ó¥Ñ¥¤¥é¤¬Î©¤Æ¤ë²¾Äê¤ò·èÄꤷ¤Þ¤¹¡£SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¤¹¤Ù¤Æ¡¢¾¯¤Ê¤¯¤È¤â¡ØSPARC Architecture Manual, Version 7¡Ù¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀÌ¿Î᥻¥Ã¥È¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢-xarch=v7 ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤Ï¡¢¤½¤ì°Ê¹ß¤Î¥×¥í¥»¥Ã¥µ¤Îµ¡Ç½¤ò½½Ê¬ÍøÍѤ·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤É¤Î SPARC ¥·¥¹¥Æ¥à¤Ç¤âÆ°ºî¤·¤Þ¤¹¡£Æ±Íͤˡ¢-xchip ¤ÎÆÃÄê¤ÎÃͤǥ³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ï¡¢-xarch ¤Ç»ØÄꤵ¤ì¤¿Ì¿Î᥻¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¹¤Ù¤Æ¤Î SPARC ¥·¥¹¥Æ¥à¤ÇÆ°ºî¤·¤Þ¤¹¤¬¡¢»ØÄꤵ¤ì¤¿¥×¥í¥»¥Ã¥µ°Ê³°¤Î¥×¥í¥»¥Ã¥µ¤òÅëºÜ¤·¤¿¥·¥¹¥Æ¥à¤Ç¤Ï¼Â¹Ô®ÅÙ¤¬Íî¤Á¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£

¤³¤Îɽ¤Ëµó¤²¤é¤ì¤¿ microSPARC-I ¤è¤ê¤âÁ°¤ÎÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¡¢¡ØSPARC Architecture Manual, Version 7¡Ù¤ËÄêµÁ¤µ¤ì¤¿ÉâÆ°¾®¿ôÅÀÌ¿Î᥻¥Ã¥È¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î FPU ¤ò»ÈÍѤ·¤¿¥·¥¹¥Æ¥à¤Ç¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥×¥í¥°¥é¥à¤Ï¡¢-xarch=v7 ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ÆÃÀ­¤Ë¤Ä¤¤¤Æ¤ÏÆä˲¾Äꤷ¤Ê¤¤¤¿¤á¡¢¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤Ï¤É¤ì¤âñ°ì¤Î -xchip ¥ª¥×¥·¥ç¥ó¡¢-xchip=old ¤ò¶¦Í­¤·¤Þ¤¹¡£É½ B-1 ¤Ë¼¨¤µ¤ì¤¿¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢¸½ºß Sun WorkShop Compiler ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£¤½¤ì¤é¤Ï¡¢ÍúÎò¤ò¼¨¤¹¤¿¤á¤Ëµó¤²¤é¤ì¤Æ¤¤¤ë¤Ë¤¹¤®¤Þ¤»¤ó¡£¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥³¥ó¥Ñ¥¤¥é¤Ç»ÈÍѤ¹¤ë¥³¡¼¥ÉÀ¸À®¥Õ¥é¥°¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤Î³ºÅö¤¹¤ëÈǤò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

microSPARC-I ¤ª¤è¤Ó microSPARC-II ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¡¢¡ØSPARC Architecture Manual, Version 8¡Ù¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀÌ¿Î᥻¥Ã¥È (FsMULd ¤ª¤è¤Ó 4 ÇÜÀºÅÙÌ¿Îá¤ò½ü¤¯) ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£-xarch=v8 ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤Ï¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤¬ÅëºÜ¤µ¤ì¤¿¥·¥¹¥Æ¥à¾å¤ÇÆ°ºî¤·¤Þ¤¹¤¬¡¢¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ÉâÆ°¾®¿ôÅÀÌ¿Îá¤Ï¥·¥¹¥Æ¥à¥«¡¼¥Í¥ë¤¬¥¨¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¡¢FsMULd ¤ò¹­ÈϰϤˤ錄¤Ã¤Æ»ÈÍѤ¹¤ë¥×¥í¥°¥é¥à (¿¿ô¤ÎñÀºÅÙ¤ÎÊ£ÁÇ¿ô±é»»¤ò¹Ô¤¦ FORTRAN ¥×¥í¥°¥é¥à¤Ê¤É) ¤Ç¤Ï¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Ãø¤·¤¯Äã²¼¤¹¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê»öÂÖ¤òÈò¤±¤ë¤Ë¤Ï¡¢¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤òÅëºÜ¤·¤¿¥·¥¹¥Æ¥àÍÑ¤Î¥×¥í¥°¥é¥à¤ò¡¢-xarch=v8a ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£

SuperSPARC-I¡¢SuperSPARC-II¡¢hyperSPARC¡¢¤ª¤è¤Ó TurboSPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¡¢¡ØSPARC Architecture Manual, Version 8¡Ù¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀÌ¿Î᥻¥Ã¥È (4 ÇÜÀºÅÙÌ¿Îá¤ò½ü¤¯) ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤òÅëºÜ¤·¤¿¥·¥¹¥Æ¥à¤ÇºÇ¹â¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤òÆÀ¤ë¤Ë¤Ï¡¢-xarch=v8 ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£

UltraSPARC-I¡¢UltraSPARC-II¡¢¤ª¤è¤Ó UltraSPARC-IIi ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¡¢¡ØSPARC Architecture Manual¡¢Version 9¡Ù¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀÌ¿Î᥻¥Ã¥È (4 ÇÜÀºÅÙÌ¿Îá¤ò½ü¤¯) ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£¶ñÂÎŪ¤Ë¤Ï¡¢¤³¤ì¤é¤Î FPU ¤Ï¡¢32 ÇÜÀºÅÙ¤ÎÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÄ󶡤·¤Þ¤¹¡£¥³¥ó¥Ñ¥¤¥é¤¬¤³¤ì¤é¤Î¥ì¥¸¥¹¥¿¤ò»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢-xarch=v8plus (32 ¥Ó¥Ã¥È OS ¤ÇÆ°ºî¤¹¤ë¥×¥í¥°¥é¥àÍÑ) ¤Þ¤¿¤Ï -xarch=v9 (64 ¥Ó¥Ã¥È OS ¤ÇÆ°ºî¤¹¤ë¥×¥í¥°¥é¥àÍÑ) ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤Ï¡¢É¸½à¤ÎÌ¿Î᥻¥Ã¥È¤Î³ÈÄ¥µ¡Ç½¤âÄ󶡤·¤Æ¤¤¤Þ¤¹¡£Visual Instruction Set (VIS) ¤È¤·¤ÆÃΤé¤ì¤ëÄɲÃÌ¿Îá¤ò¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤ËÀ¸À®¤¹¤ë¤³¤È¤Ï¤Þ¤ì¤Ç¤¹¤¬¡¢¤½¤Î¾ì¹ç¤Ï¥¢¥»¥ó¥Ö¥ê¥³¡¼¥É¤Ç»ÈÍѤǤ­¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÌ¿Î᥻¥Ã¥È¤ò¥Õ¥ë¤ËÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢-xarch=v8plusa (32 ¥Ó¥Ã¥È) ¤Þ¤¿¤Ï -xarch=v9a (64 ¥Ó¥Ã¥È) ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£

-xarch ¤ª¤è¤Ó -xchip ¥ª¥×¥·¥ç¥ó¤Ï¡¢-xtarget ¥Þ¥¯¥í¤ò»ÈÍѤ·¤ÆƱ»þ¤Ë»ØÄê¤Ç¤­¤Þ¤¹ (-xtarget ¥Õ¥é¥°¤Ï¡¢-xarch¡¢-xchip¡¢¤ª¤è¤Ó -xcache ¥Õ¥é¥°¤ÎŬÀÚ¤ÊÁȤ߹ç¤ï¤»¤È¤·¤ÆŸ³«¤µ¤ì¤Þ¤¹)¡£¥Ç¥Õ¥©¥ë¥È¤Î¥³¡¼¥ÉÀ¸À®¥ª¥×¥·¥ç¥ó¤Ï¡¢-xtarget=generic ¤Ç¤¹¡£-xarch¡¢-xchip¡¢-xtarget ¤ÎÃͤÎÁ´°ìÍ÷¤Ê¤É¡¢¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢cc(1)¡¢CC(1)¡¢f77(1)¡¢¤ª¤è¤Ó f95(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤È¥³¥ó¥Ñ¥¤¥é¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£-xarch ¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï¡ØFortran ¥æ¡¼¥¶¡¼¥º¥¬¥¤
¥É¡Ù¡¢¡ØC ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¡¢¤ª¤è¤Ó¡ØC++ ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¤Ë¤¢¤ê¤Þ¤¹¡£

ÉâÆ°¾®¿ôÅÀ¾õÂ֥쥸¥¹¥¿¤ÈÂÔ¤Á¹ÔÎó

¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¤«¤Ë¤«¤«¤ï¤é¤º¡¢SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¤¹¤Ù¤Æ¡¢FPU ¤ËÂбþ¤·¤¿¾õÂ֥ӥåȤÈÀ©¸æ¥Ó¥Ã¥È¤¬Æþ¤Ã¤¿ÉâÆ°¾®¿ôÅÀ¾õÂ֥쥸¥¹¥¿ (FSR) ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ÃÙ±äÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤ò¼ÂÁõ¤·¤Æ¤¤¤ë SPARC FPU ¤Ï¤¹¤Ù¤Æ¡¢¸½ºß¼Â¹ÔÃæ¤ÎÉâÆ°¾®¿ôÅÀÌ¿Îá¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÝ»ý¤¹¤ëÉâÆ°¾®¿ôÅÀÂÔ¤Á¹ÔÎó (FQ) ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£È¯À¸¤·¤¿ÉâÆ°¾®¿ôÅÀÎã³°¤ò¸¡½Ð¤·¡¢´Ý¤áÊý¸þ¡¢¥È¥é¥Ã¥×¡¢¤ª¤è¤Óɸ½à³°±é»»¥â¡¼¥É¤òÀ©¸æ¤¹¤ë¤è¤¦¤Ë¡¢FSR ¤Ï¥æ¡¼¥¶¡¼¥½¥Õ¥È¥¦¥§¥¢¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£FQ ¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤Î½èÍý¤Î¤¿¤á¤Ë¡¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£FQ ¤Ï¡¢Ä̾ï¥æ¡¼¥¶¡¼¥½¥Õ¥È¥¦¥§¥¢¤«¤é¤Ï¸«¤¨¤Þ¤»¤ó¡£

¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢FSR ¤ò¥á¥â¥ê¡¼¤Ë³ÊǼ¤¹¤ë STFSR Ì¿Îá¤È FSR ¤ò¥á¥â¥ê¡¼¤«¤éÆɤ߹þ¤à LDFSR Ì¿Îá¤ò²ð¤·¤Æ¡¢ÉâÆ°¾®¿ôÅÀ¾õÂ֥쥸¥¹¥¿¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£SPARC ¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÌ¿Îá¤Ï¼¡¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Þ¤¹¡£

st          %fsr, [addr] ! FSR ¤ò»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ë³ÊǼ¤¹¤ë
ld          [addr], %fsr ! FSR ¤ò»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤«¤éÆɤ߹þ¤à

Sun WorkShop Compiler ¤ËÉÕ°¤Î¥é¥¤¥Ö¥é¥ê¤¬ÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÆþ¤Ã¤Æ¤¤¤ë¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë libm.il ¤Ë¤Ï¡¢STFSR ¤ª¤è¤Ó LDFSR Ì¿Îá¤Î»ÈÍѤò¼¨¤¹Î㤬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£

¼¡¤Î¿Þ B-1 ¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¾õÂ֥쥸¥¹¥¿¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥ì¥¤¥¢¥¦¥È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

¿Þ B-1 SPARC ÉâÆ°¾®¿ôÅÀ¾õÂ֥쥸¥¹¥¿

(SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥Ð¡¼¥¸¥ç¥ó 7 ¤È 8 ¤Ç¤Ï¡¢¤³¤Î¿Þ¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë FSR ¤Ï 32 ¥Ó¥Ã¥È¤òÀê¤á¤Þ¤¹¡£¥Ð¡¼¥¸¥ç¥ó 9 ¤Ç¤Ï FSR ¤Ï 64 ¥Ó¥Ã¥È¤Ë³ÈÄ¥¤µ¤ì¤Þ¤¹¤¬¡¢¤½¤Î¤¦¤Á¤Î²¼°Ì 32 ¥Ó¥Ã¥È¤Ï¤³¤Î¿Þ¤È°ìÃפ·¡¢¾å°Ì 32 ¥Ó¥Ã¥È¤Ë¤Ï 3 ¤Ä¤ÎÉâÆ°¾®¿ôÅÀ¾ò·ï¥³¡¼¥É¥Õ¥£¡¼¥ë¥É¤¬¤µ¤é¤ËÆþ¤Ã¤Æ¤¤¤ë¤À¤±¤Ç¡¢ÂçÉôʬ¤Ï̤»ÈÍѤǤ¹¡£)

¤³¤Î¿ÞÃæ¤Î res ¤ÏͽÌóºÑ¤ß¤Î¥Ó¥Ã¥È¤ò¼¨¤·¡¢ver ¤Ï FPU ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹Æɤ߼è¤êÀìÍÑ¥Õ¥£¡¼¥ë¥É¤Ç¤¹¡£ftt ¤È qne ¤Ï¡¢¥·¥¹¥Æ¥à¤¬ÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤ò½èÍý¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£»Ä¤ê¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Îɽ¤Ë¼¨¤·¤Þ¤¹¡£

ɽ B-2   ÉâÆ°¾®¿ôÅÀ¾õÂ֥쥸¥¹¥¿¥Õ¥£¡¼¥ë¥É
¥Õ¥£¡¼¥ë¥É ÆâÍÆ
RM ´Ý¤áÊý¸þ¥â¡¼¥É
TEM ¥È¥é¥Ã¥×Í­¸ú²½¥â¡¼¥É
NS ɸ½à³°¥â¡¼¥É
fcc ÉâÆ°¾®¿ôÅÀ¾ò·ï¥³¡¼¥É
aexc ÎßÀÑÎã³°¥Õ¥é¥°
cexc ¸½ºß¤ÎÎã³°¥Õ¥é¥°


RM ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢ÉâÆ°¾®¿ôÅÀ±é»»¤Î´Ý¤áÊý¸þ¤ò»ØÄꤹ¤ë 2 ¥Ó¥Ã¥È¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£NS ¥Ó¥Ã¥È¤Ï¡¢É¸½à³°±é»»¥â¡¼¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë SPARC FPU ¤Ç¤³¤Î¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤ FPU ¤Ç¤Ï¡¢¤³¤Î¥Ó¥Ã¥È¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£fcc ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢ÉâÆ°¾®¿ôÅÀÈæ³ÓÌ¿Îá¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿ÉâÆ°¾®¿ôÅÀ¾ò·ï¥³¡¼¥É¤¬Æþ¤Ã¤Æ¤ª¤ê¡¢Ê¬´ô±é»»¤È¾ò·ïÉÕ¤­°ÜÆ°±é»»¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£TEM¡¢aexc¡¢¤ª¤è¤Ó cexc ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢¥È¥é¥Ã¥×¤ÎÀ©¸æ¤È¡¢5 ¤Ä¤Î IEEE 754 ÉâÆ°¾®¿ôÅÀÎã³°¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ¤ÎÎßÀÑÎã³°¥Õ¥é¥°¤È¸½ºß¤ÎÎã³°¥Õ¥é¥°¤Îµ­Ï¿¤ò¹Ô¤¦ 5 ¥Ó¥Ã¥È¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢É½ B-3 ¤Ë¼¨¤¹¤è¤¦¤Ë¤µ¤é¤Ëʬ³ä¤µ¤ì¤Þ¤¹¡£

ɽ B-3   Îã³°½èÍý¥Õ¥£¡¼¥ë¥É
¥Õ¥£¡¼¥ë¥É ¥ì¥¸¥¹¥¿Æâ¤ÎÂбþ¤¹¤ë¥Ó¥Ã¥È
TEM¡¢¥È¥é¥Ã¥×Í­¸ú²½¥â¡¼¥É NVM 27 OFM 26 UFM 25 DZM 24 NXM 23
aexc¡¢ÎßÀÑÎã³°¥Õ¥é¥° nva 9 ofa 8 ufa 7 dza 6 nxa 5
cexc¡¢¸½ºß¤ÎÎã³°¥Õ¥é¥° nvc 4 ofc 3 ufc 2 dzc 1 nxc 0


¾åµ­¤Îµ­¹æ NV¡¢OF¡¢UF¡¢DZ¡¢¤ª¤è¤Ó NX ¤Ï¡¢Ìµ¸ú±é»»¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼¡¢¥¼¥í½ü»»¡¢¤ª¤è¤ÓÉÔÀµ³Î¤ÊÎã³°¤ò¤½¤ì¤¾¤ì°ÕÌ£¤·¤Þ¤¹¡£

¥½¥Õ¥È¥¦¥§¥¢¥µ¥Ý¡¼¥È¤¬É¬ÍפÊÆÃÊ̤ʾì¹ç

SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¡¢Ä̾ï¤Ï¥½¥Õ¥È¥¦¥§¥¢¥µ¥Ý¡¼¥È¤òɬÍפȤ¹¤ë¤³¤È¤Ê¤¯´°Á´¤Ë¥Ï¡¼¥É¥¦¥§¥¢Æâ¤ÇÌ¿Îá¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤·¤«¤·¡¢°Ê²¼¤Î 4 ¤Ä¤Î¾õ¶·¤Ë¤ª¤¤¤Æ¡¢¥Ï¡¼¥É¥¦¥§¥¢¤ÏÉâÆ°¾®¿ôÅÀÌ¿Îá¤òÀµ¾ï¤Ë´°Î»¤·¤Þ¤»¤ó¡£

¤³¤ì¤é¤Î¾õ¶·¤Ç¤ÎºÇ½é¤Î±þÅú¤Ï¤¹¤Ù¤Æ¡¢¥×¥í¥»¥¹¤«¤é¥·¥¹¥Æ¥à¥«¡¼¥Í¥ë¤ËÂФ¹¤ë¥È¥é¥Ã¥×¤Îȯ¹Ô¤Ç¤¹¡£¥·¥¹¥Æ¥à¥«¡¼¥Í¥ë¤Ï¡¢¥È¥é¥Ã¥×¤Î¸¶°ø¤ò³Î¤«¤á¡¢Å¬ÀڤʽèÃÖ¤ò¹Ô¤¤¤Þ¤¹ (¡Ö¥È¥é¥Ã¥×¡×¤Ï¡¢Ä̾ï¤ÎÀ©¸æ¥Õ¥í¡¼¤Î³ä¤ê¹þ¤ß¤ò°ÕÌ£¤·¤Þ¤¹)¡£ºÇ½é¤Î 3 ¤Ä¤Î¾õ¶·¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï¥½¥Õ¥È¥¦¥§¥¢Æâ¤Ç¥È¥é¥Ã¥×Ì¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤·¤Þ¤¹¡£¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ëÌ¿Îá¤â¤Þ¤¿¡¢¥È¥é¥Ã¥×¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿Îã³°¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

¾åµ­¤ÎºÇ½é¤Î 3 ¤Ä¤Î¾õ¶·¤Ç¡¢¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ëÌ¿Î᤬¥È¥é¥Ã¥×¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿ IEEE ÉâÆ°¾®¿ôÅÀÎã³°¤òȯÀ¸¤µ¤»¤Ê¤¤¾ì¹ç¡¢¥«¡¼¥Í¥ë¤ÏÌ¿Îá¤ò´°Î»¤·¤Þ¤¹¡£Ì¿Î᤬ÉâÆ°¾®¿ôÅÀÈæ³Ó¤Î¾ì¹ç¤Ï¡¢¤½¤Î·ë²Ì¤òÈ¿±Ç¤µ¤»¤ë¤¿¤á¤Ë¾ò·ï¥³¡¼¥É¤ò¹¹¿·¤·¤Þ¤¹¡£Ì¿Î᤬»»½Ñ±é»»¤Î¾ì¹ç¤Ï¡¢°¸Àè¥ì¥¸¥¹¥¿¤ËÂФ·¤ÆŬÀڤʷë²Ì¤òÇÛÉÛ¤·¤Þ¤¹¡£¥«¡¼¥Í¥ë¤Ï¡¢Ì¿Îá¤Ë¤è¤Ã¤ÆȯÀ¸¤·¤¿ (¥È¥é¥Ã¥×¤µ¤ì¤Ê¤¤) Îã³°¤òÈ¿±Ç¤µ¤»¤ë¤¿¤á¤Ë¸½ºß¤ÎÎã³°¥Õ¥é¥°¤Î¹¹¿·¤â¹Ô¤¤¡¢¤½¤ì¤é¤ÎÎã³°¤ÎÏÀÍýϤòÎßÀÑÎã³°¥Õ¥é¥°¤ËÆþ¤ì¤Þ¤¹¡£¤½¤Î¸å¥«¡¼¥Í¥ë¤Ï¡¢¥È¥é¥Ã¥×¤¬µ¯¤­¤¿°ÌÃÖ¤Ç¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò·Ñ³¤¹¤ë¤è¤¦¤Ë¼ê¤Ï¤º¤òÀ°¤¨¤Þ¤¹¡£

¥Ï¡¼¥É¥¦¥§¥¢¤¬¼Â¹Ô¤¹¤ëÌ¿Îá¤ä¥«¡¼¥Í¥ë¥½¥Õ¥È¥¦¥§¥¢¤¬¥¨¥ß¥å¥ì¡¼¥È¤¹¤ëÌ¿Î᤬¥È¥é¥Ã¥×¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿ IEEE ÉâÆ°¾®¿ôÅÀÎã³°¤òȯÀ¸¤µ¤»¤ë¾ì¹ç¡¢Ì¿Îá¤Ï´°Î»¤µ¤ì¤Þ¤»¤ó¡£°¸Àè¥ì¥¸¥¹¥¿¡¢ÉâÆ°¾®¿ôÅÀ¾ò·ï¥³¡¼¥É¡¢¤ª¤è¤ÓÎßÀÑÎã³°¥Õ¥é¥°¤ÏÊѹ¹¤µ¤ì¤º¡¢¸½ºß¤ÎÎã³°¥Õ¥é¥°¤Ï¥È¥é¥Ã¥×¤Î¸¶°ø¤È¤Ê¤Ã¤¿Îã³°¤òÈ¿±Ç¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤µ¤ì¡¢¥«¡¼¥Í¥ë¤Ï SIGFPE ¥·¥°¥Ê¥ë¤ò¥×¥í¥»¥¹¤ËÁ÷¤ê¤Þ¤¹¡£

¼¡¤Îµ¿»÷¥³¡¼¥É¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤Î½èÍý¤Î³µÍפò¼¨¤·¤Æ¤¤¤Þ¤¹¡£aexc ¥Õ¥£¡¼¥ë¥É¤Ï¡¢Ä̾諒¥Õ¥È¥¦¥§¥¢¤Ç¤·¤«¥¯¥ê¥¢¡¼¤Ç¤­¤Þ¤»¤ó¡£

FPop provokes a trap;
if trap type is fp_disabled, unimplemented_FPop, or
  unfinished_FPop then
    emulate FPop;
texc ¬ FPop ¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î IEEE Îã³°
if (texc and TEM) = 0 then
    f[rd]  ¬ fp_result;  // fpop ¤¬»»½Ñ±é»»¤Î¾ì¹ç
    fcc ¬ fcc_result;  // ifpop ¤¬Èæ³Ó¤Î¾ì¹ç
    cexc ¬ texc;
    aexc ¬ (aexc ¤Þ¤¿¤Ï texc);
else
    cexc ¬ FPop ¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¥È¥é¥Ã¥×¤µ¤ì¤¿ IEEE Îã³°
    throw SIGFPE;

¿¤¯¤ÎÉâÆ°¾®¿ôÅÀÌ¿Î᤬¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤­¡¢¥×¥í¥°¥é¥à¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÏÂçÉý¤ËÄã²¼¤·¤Þ¤¹¡£¤³¤Î¾õ¶·¤¬È¯À¸¤¹¤ëÁêÂÐÉÑÅ٤ϡ¢¥È¥é¥Ã¥×¤Î¼ïÎà¤Ê¤É¡¢¤¤¤¯¤Ä¤«¤ÎÍ×°ø¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£

ÉáÄ̤ξõ¶·¤Ç¤Ï¡¢fp_disabled ¥È¥é¥Ã¥×¤Ï¥×¥í¥»¥¹¤¢¤¿¤ê 1 ÅÙ¤À¤±È¯À¸¤·¤Þ¤¹¡£¥·¥¹¥Æ¥à¥«¡¼¥Í¥ë¤Ï¡¢¥×¥í¥»¥¹¤¬¤Ï¤¸¤á¤Æ³«»Ï¤µ¤ì¤ë¤È¤­¤ËÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ëºÇ½é¤ÎÉâÆ°¾®¿ôÅÀ±é»»¤¬¥È¥é¥Ã¥×¤òȯÀ¸¤µ¤»¤Þ¤¹¡£¥È¥é¥Ã¥×¤ò½èÍý¤·¤¿¤¢¤È¡¢¥«¡¼¥Í¥ë¤ÏÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£Í­¸ú¤Ë¤µ¤ì¤¿¥æ¥Ë¥Ã¥È¤Ï¡¢¥×¥í¥»¥¹¤Î´ÖÃ桢ͭ¸ú¤Ê¾õÂÖ¤¬·Ñ³¤·¤Þ¤¹¡£¥·¥¹¥Æ¥àÁ´ÂΤˤĤ¤¤ÆÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¤¬¡¢¤³¤ì¤Ï¤ª´«¤á¤Ç¤­¤Þ¤»¤ó¡£¥«¡¼¥Í¥ë¤Þ¤¿¤Ï¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ç¥Ð¥Ã¥°ÌÜŪ¤Ë¤È¤É¤á¤Æ¤¯¤À¤µ¤¤¡£

unimplemented_FPop ¥È¥é¥Ã¥×¤Ï¡¢¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤Ì¿Îá¤ËÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤¬½Ð²ñ¤¦¾ì¹ç¤Ëɬ¤ºÈ¯À¸¤·¤Þ¤¹¡£¸½ºß¤Î SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Î¤Û¤È¤ó¤É¤Ï¡¢4 ÇÜÀºÅÙÌ¿Îá¤ò½ü¤¤¤Æ¡ØSPARC Architecture Manual, Version 8¡Ù¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ëÌ¿Îá¤Ï¾¯¤Ê¤¯¤È¤â¼ÂÁõ¤·¤Æ¤ª¤ê¡¢¤Þ¤¿ Sun WorkShop Compiler ¤Ï 4 ÇÜÀºÅÙÌ¿Îá¤òÀ¸À®¤·¤Ê¤¤¤¿¤á¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤Î¼ï¤Î¥È¥é¥Ã¥×¤¬È¯À¸¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£Á°½Ò¤·¤¿¤è¤¦¤Ë¡¢FsMULd Ì¿Îá¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤ microSPARC-I ¤ª¤è¤Ó microSPARC-II ¥×¥í¥»¥Ã¥µ¤ÏÎã³°¤Ç¤¹¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î 2 ¤Ä¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Î unimplemented_FPop ¥È¥é¥Ã¥×¤òÈò¤±¤ë¤Ë¤Ï¡¢-xarch=v8a ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£

»Ä¤ë 2 ¼ïÎà¤Î¥È¥é¥Ã¥×¡¢unfinished_FPop ¤ª¤è¤Ó¥È¥é¥Ã¥×¤µ¤ì¤¿ IEEE Îã³°¤Ï¡¢Ä̾NaN¡¢Ìµ¸ÂÂç¡¢¤ª¤è¤ÓÈóÀµµ¬¿ô¤¬¤«¤«¤ï¤ëÆüì¤Ê±é»»¾õ¶·¤Ë´ØÏ¢¤·¤Æ¤¤¤Þ¤¹¡£

IEEE ÉâÆ°¾®¿ôÅÀÎã³°¡¢NaN¡¢¤ª¤è¤Ó̵¸ÂÂç

ÉâÆ°¾®¿ôÅÀÌ¿Î᤬¥È¥é¥Ã¥×¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿ IEEE ÉâÆ°¾®¿ôÅÀÎã³°¤Ë½Ð²ñ¤¦¤È¡¢Ì¿Îá¤Ï´°Î»¤µ¤ì¤º¡¢¥·¥¹¥Æ¥à¤Ï¥×¥í¥»¥¹¤ËÂФ·¤Æ SIGFPE ¥·¥°¥Ê¥ë¤òÇÛÉÛ¤·¤Þ¤¹¡£¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë SIGFPE ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò³ÎΩ¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤½¤Î¥Ï¥ó¥É¥é¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¤¬¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¥×¥í¥»¥¹¤ÏÄä»ß¤·¤Þ¤¹¡£¥È¥é¥Ã¥×¤òÍ­¸ú¤Ë¤¹¤ë¤Î¤ÏÄ̾Î㳰ȯÀ¸»þ¤Ë¥×¥í¥°¥é¥à¤òÄä»ß¤¹¤ë¤¿¤á¤Ç¤¢¤ë¤³¤È¤«¤é¡¢¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ¥×¥í¥°¥é¥à¤òÄä»ß¤¹¤ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤¹¤«¡¢¤¢¤ë¤¤¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ë¤Þ¤È¤áľ¤¹¤È¡¢¤Û¤È¤ó¤É¤Î¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¥È¥é¥Ã¥×¤µ¤ì¤¿ IEEE ÉâÆ°¾®¿ôÅÀÎã³°¤ÎȯÀ¸¤¬¾¯¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢Âè 4 ¾Ï¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¥È¥é¥Ã¥×Ì¿Îá¤Ë·ë²Ì¤ò¶¡µë¤·¤Æ¼Â¹Ô¤ò·Ñ³¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£Â¿¤¯¤ÎÉâÆ°¾®¿ôÅÀÎã³°¤¬¥È¥é¥Ã¥×¤µ¤ì¤Æ¤³¤ÎÊýË¡¤Ç½èÍý¤µ¤ì¤ë¾ì¹ç¤Ï¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬ÂçÉý¤ËÄã²¼¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

¤Û¤È¤ó¤É¤Î SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¡¢¾¯¤Ê¤¯¤È¤â¡¢Ìµ¸Â¥ª¥Ú¥é¥ó¥É¡¢NaN ¥ª¥Ú¥é¥ó¥É¡¢¤Þ¤¿¤Ï IEEE ÉâÆ°¾®¿ôÅÀÎã³°¤¬¤«¤«¤ï¤ë¥±¡¼¥¹¤Ç¤â¥È¥é¥Ã¥×¤òµ¯¤³¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥È¥é¥Ã¥×¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤ä¡¢¥È¥é¥Ã¥×¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿Îã³°¤òÌ¿Î᤬°ú¤­µ¯¤³¤µ¤Ê¤¤¾ì¹ç¤Ç¤âƱÍͤǤ¹¡£¤³¤ì¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤¬¤³¤Î¤è¤¦¤ÊÆüì¤Ê¥±¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤»¤º¡¢unfinished_FPop ¥È¥é¥Ã¥×¤òÀ¸À®¤·¡¢¥«¡¼¥Í¥ë¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥½¥Õ¥È¥¦¥§¥¢¤¬Ì¿Îá¤ò´°Î»¤¹¤ë¤ËǤ¤»¤ë¾ì¹ç¤ËȯÀ¸¤·¤Þ¤¹¡£unfinished_FPop ¥È¥é¥Ã¥×¤È¤Ê¤ë¾ò·ï¤Ï¡¢SPARC FPU ¤Î¼ïÎà¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢½é´ü¤Î¤Û¤È¤ó¤É¤Î SPARC FPU ¤ä hyperSPARC FPU ¤Ï¡¢¥È¥é¥Ã¥×¤¬Í­¸ú¤«¤É¤¦¤«¤Ë¤«¤«¤ï¤é¤º¤¹¤Ù¤Æ¤Î IEEE ÉâÆ°¾®¿ôÅÀÎã³°¤Ç¥È¥é¥Ã¥×¤·¤Þ¤¹¡£UltraSPARC FPU ¤Ï¡¢ÉâÆ°¾®¿ôÅÀÎã³°¤Î¥È¥é¥Ã¥×¤¬Í­¸ú¤Ç¡¢¤·¤«¤âÌ¿Î᤬Îã³°¤òȯÀ¸¤µ¤»¤ë¤«¤É¤¦¤«¤ò¥Ï¡¼¥É¥¦¥§¥¢¤¬·èÄê¤Ç¤­¤Ê¤¤¤È¤¤¤¦¾ì¹ç¤Ë¡ÖÈá´ÑŪ¤Ë¡×¥È¥é¥Ã¥×¤·¤Þ¤¹¡£°ìÊý¡¢SuperSPARC-I¡¢SuperSPARC-II¡¢TurboSPARC¡¢microSPARC-I¡¢¤ª¤è¤Ó microSPARC-II FPU ¤Ç¤Ï¤¹¤Ù¤Æ¤ÎÎ㳰Ū¤Ê¥±¡¼¥¹¤¬¥Ï¡¼¥É¥¦¥§¥¢¤Ç½èÍý¤µ¤ì¡¢unfinished_FPop ¥È¥é¥Ã¥×¤¬À¸À®¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¤Û¤È¤ó¤É¤Î unfinished_FPop ¤ÏÉâÆ°¾®¿ôÅÀÎã³°¤È¤ÎÁȤ߹ç¤ï¤»¤ÇȯÀ¸¤¹¤ë¤¿¤á¡¢Îã³°½èÍý (Îã³°¥Õ¥é¥°¤Î¥Æ¥¹¥È¡¢·ë²Ì¤Î¥È¥é¥Ã¥×¤ÈÃÖ´¹¡¢¤Þ¤¿¤ÏÎ㳰ȯÀ¸»þ¤ÎÄä»ß) ¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢²áÅ٤Υȥé¥Ã¥×¤ÎȯÀ¸¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤â¤Á¤í¤ó¡¢Îã³°¤ò½èÍý¤¹¤ë¾ì¹ç¤ÎÏ«ÎϤȡ¢Îã³°¤¬ unfinished_FPop ¥È¥é¥Ã¥×¤È¤Ê¤ë¤ËǤ¤»¤ë¾ì¹ç¤ÎÏ«ÎϤΥХé¥ó¥¹¤ò¤È¤ë¤è¤¦¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

ÈóÀµµ¬¿ô¤Èɸ½à³°±é»»

°ìÉô¤Î SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤¬ unfinished_FPop ¥È¥é¥Ã¥×¤È¤Ê¤ë¤â¤Ã¤È¤â°ìÈÌŪ¤Ê¾õ¶·¤È¤·¤Æ¡¢ÈóÀµµ¬¿ô¤¬µó¤²¤é¤ì¤Þ¤¹¡£Â¿¤¯¤Î SPARC FPU ¤Ï¡¢ÉâÆ°¾®¿ôÅÀ±é»»¤ËÈóÀµµ¬¥ª¥Ú¥é¥ó¥É¤¬´Þ¤Þ¤ì¤ë¤«¡¢ÉâÆ°¾®¿ôÅÀ±é»»¤¬¥¼¥í°Ê³°¤ÎÈóÀµµ¬¤Î·ë²Ì (Ãʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹·ë²Ì) ¤òɬ¤ºÀ¸À®¤¹¤ë¾ì¹ç¤Ë¾ï¤Ë¥È¥é¥Ã¥×¤·¤Þ¤¹¡£¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ï¤µ¤Û¤ÉȯÀ¸¤·¤Þ¤»¤ó¤¬¡¢¥×¥í¥°¥é¥ß¥ó¥°¤¬º¤Æñ¤Ç¤¹¡£¤Þ¤¿¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼¤µ¤ì¤¿Ãæ´Ö·ë²Ì¤ÎÀµ³ÎÅ٤ϡ¢±é»»¤ÎºÇ½ª·ë²Ì¤Ë¤ª¤±¤ëÁ´ÂÎŪ¤ÊÀµ³ÎÅÙ¤ËÄ̾ï¤Ï¤Û¤È¤ó¤É±Æ¶Á¤¬¤¢¤ê¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¡¢SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ï¡¢ÈóÀµµ¬¿ô¤¬¤«¤«¤ï¤ë unfinished_FPop ¥È¥é¥Ã¥×¤Ë´ØÏ¢¤·¤¿¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹Äã²¼¤òÈò¤±¤ëÊýË¡¤ò¥æ¡¼¥¶¡¼¤ËÄ󶡤¹¤ëɸ½à³°±é»»¥â¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£

SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï¡¢É¸½à³°±é»»¥â¡¼¥É¤òÌÀ³Î¤Ë¤ÏÄêµÁ¤·¤Æ¤¤¤Þ¤»¤ó¡£SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï¡¢É¸½à³°±é»»¥â¡¼¥É¤¬Í­¸ú¤Ë¤Ê¤ë¤È¤­¡¢¤³¤Î¥â¡¼¥É¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥×¥í¥»¥Ã¥µ¤Ï IEEE 754 µ¬³Ê¤Ë½àµò¤·¤Ê¤¤·ë²Ì¤òÀ¸À®¤Ç¤­¤ë¤È½Ò¤Ù¤Æ¤¤¤ë¤Ë¤¹¤®¤Þ¤»¤ó¡£¤·¤«¤·¡¢¤³¤Î¥â¡¼¥É¤ò¥µ¥Ý¡¼¥È¤¹¤ë´û¸¤Î SPARC ¼ÂÁõ¤Ï¤¹¤Ù¤Æ¡¢¤³¤Î¥â¡¼¥É¤ò»ÈÍѤ·¤ÆÃʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ò̵¸ú¤Ë¤·¡¢¤¹¤Ù¤Æ¤ÎÈóÀµµ¬¥ª¥Ú¥é¥ó¥É¤ÈÈóÀµµ¬·ë²Ì¤ò¥¼¥í¤ËÃÖ´¹¤·¤Þ¤¹¡£1 ¤Ä¤À¤±Îã³°¤¬¤¢¤ê¤Þ¤¹¡£Weitek 1164/1165 FPU ¤Ï¡¢É¸½à³°¥â¡¼¥É¤ÇÈóÀµµ¬·ë²Ì¤ò¥¼¥í¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ë¤À¤±¤Ç¡¢ÈóÀµµ¬¥ª¥Ú¥é¥ó¥É¤ò¥¼¥í¤È¤·¤Æ°·¤¦¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

SPARC ¼ÂÁõ¤ÎÃæ¤Ë¤Ï¡¢É¸½à³°¥â¡¼¥É¤òÄ󶡤·¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£SuperSPARC-I¡¢SuperSPARC-II¡¢TurboSPARC¡¢microSPARC-I¡¢¤ª¤è¤Ó microSPARC-II ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ï¡¢´°Á´¤Ë¥Ï¡¼¥É¥¦¥§¥¢Æâ¤ÇÈóÀµµ¬¥ª¥Ú¥é¥ó¥É¤Î½èÍý¤ÈÈóÀµµ¬·ë²Ì¤ÎÀ¸À®¤ò¹Ô¤¦¤¿¤á¡¢É¸½à³°±é»»¤ò¥µ¥Ý¡¼¥È¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó (¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤Çɸ½à³°¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¤Æ¤â̵»ë¤µ¤ì¤Þ¤¹)¡£¤½¤Î¤¿¤á¡¢¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ï¡¢Ãʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¤¿¤á¤Ë¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Äã²¼¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

Ãʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬¥×¥í¥°¥é¥à¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ë±Æ¶Á¤òÍ¿¤¨¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¡¢¤Þ¤º¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬¼ÂºÝ¤ËȯÀ¸¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¡¢Â³¤¤¤Æ¥×¥í¥°¥é¥à¤¬¤É¤ì¤À¤±¥·¥¹¥Æ¥à»þ´Ö¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ÎȯÀ¸¤Î̵ͭ¤òÄ´¤Ù¤ë¤Ë¤Ï¡¢¿ô³Ø¥é¥¤¥Ö¥é¥ê´Ø¿ô ieee_retrospective() ¤ò»ÈÍѤ·¤Æ¡¢¥×¥í¥°¥é¥à¤Î½ªÎ»»þ¤Ë¥¢¥ó¥À¡¼¥Õ¥í¡¼Îã³°¥Õ¥é¥°¤¬È¯À¸¤¹¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£FORTRAN ¥×¥í¥°¥é¥à¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç ieee_retrospective() ¤ò¥³¡¼¥ë¤·¤Þ¤¹¡£C ¤ª¤è¤Ó C++ ¥×¥í¥°¥é¥à¤Ï¡¢½ªÎ»Á°¤ËÌÀ¼¨Åª¤Ë ieee_retrospective() ¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ieee_retrospective() ¤Ï¼¡¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£

Note: IEEE floating-point exception flags raised: 
Inexact; Underflow;
See the Numerical Computation Guide, ieee_flags(3M)

¥×¥í¥°¥é¥à¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ë½Ð²ñ¤¦¾ì¹ç¡¢time ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥×¥í¥°¥é¥à¼Â¹Ô¤Î»þ´Ö¤ò¬¤ë¤³¤È¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥à¤¬¤É¤ì¤À¤±¥·¥¹¥Æ¥à»þ´Ö¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«³Îǧ¤Ç¤­¤Þ¤¹¡£

demo% /bin/time myprog > myprog.output
305.3 real	      32.4 user      	271.9 sys 

¥·¥¹¥Æ¥à»þ´Ö (¾åµ­Îã¤Î 3 ÈÖÌܤοô»ú) ¤ÎÃͤ¬°Û¾ï¤ËÂ礭¤¤¾ì¹ç¡¢Ê£¿ô¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬¸¶°ø¤È¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¾ì¹ç¡¢¥×¥í¥°¥é¥à¤¬Ãʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ÎÀµ³ÎÅ٤˰͸¤·¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢É¸½à³°¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¤Æ¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¹â¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ÎÊýË¡¤Ï 2 ¤Ä¤¢¤ê¤Þ¤¹¡£¤½¤Î 1 ¤Ä¤Ï¡¢¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ëɸ½à³°¥â¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¡¢-fns ¥Õ¥é¥° (¥Þ¥¯¥í -fast ¤È -fnonstd ¤Î°ìÉô¤È¤·¤Æ°ÅÌۤ˼¨¤µ¤ì¤Þ¤¹) ¤ò»ÈÍѤ·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤â¤Î¤Ç¤¹¡£¤â¤¦ 1 ¤Ä¤Ï¡¢ÉղòÁÃÍ¿ô³Ø¥é¥¤¥Ö¥é¥ê libsunmath ¤¬Ä󶡤·¤Æ¤¤¤ë¡¢É¸½à³°¥â¡¼¥É¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë 2 ¤Ä¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤â¤Î¤Ç¤¹¡£nonstandard_arithmetic() ¤ò¸Æ¤Ó½Ð¤¹¤Èɸ½à³°¥â¡¼¥É¤¬Í­¸ú¤Ë¤Ê¤ê (¤³¤Î¥â¡¼¥É¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡¢standard_arithmetic() ¤ò¸Æ¤Ó½Ð¤¹¤È IEEE Æ°ºî¤¬Éü¸µ¤µ¤ì¤Þ¤¹¡£¼¡¤Ë¡¢¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹ C ¤È FORTRAN ¤Î¹½Ê¸¤ò¼¨¤·¤Þ¤¹¡£

C, C++ nonstandard_arithmetic(); standard_arithmetic();
FORTRAN call nonstandard_arithmetic() call standard_arithmetic()



·Ù¹ð - ɸ½à³°±é»»¥â¡¼¥É¤Ç¤ÏÃʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ÎÍøÅÀ¤Ç¤¢¤ëÀµ³Î¤µ¤¬¼º¤ï¤ì¤ë¤¿¤á¡¢¤³¤Î¥â¡¼¥É¤ÏÃí°Õ¤·¤Æ»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Ãʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¾ÜºÙ¤Ï¡¢Âè 2 ¾Ï¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

ɸ½à³°±é»»¤È¥«¡¼¥Í¥ë¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó

ɸ½à³°¥â¡¼¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë SPARC ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤Ç¤Ï¡¢¤³¤Î¥â¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢¥Ï¡¼¥É¥¦¥§¥¢¤ÏÈóÀµµ¬¥ª¥Ú¥é¥ó¥É¤ò¥¼¥í¤È¤·¤Æ°·¤¤¡¢ÈóÀµµ¬·ë²Ì¤ò¥¼¥í¤Ë¥Õ¥é¥Ã¥·¥å¤·¤Þ¤¹¡£¤·¤«¤·¡¢¥È¥é¥Ã¥×¤µ¤ì¤¿ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¥«¡¼¥Í¥ë¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢É¸½à³°¥â¡¼¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó¡£¤³¤ÎÍýͳ¤Î 1 ¤Ä¤Ï¡¢¤³¤Î¥â¡¼¥É¤Î¸ú²Ì¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¼ÂÁõ¤Ë°Í¸¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£¤â¤¦ 1 ¤Ä¤ÎÍýͳ¤Ï¡¢Ãʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼½èÍý¤ËÈñ¤ä¤¹Ï«ÎϤ¬¥½¥Õ¥È¥¦¥§¥¢¤Ç¤ÎÉâÆ°¾®¿ôÅÀ±é»»¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ÎÏ«ÎϤËÈæ¤Ù¤Æ¤ï¤º¤«¤Ê¤â¤Î¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£

ɸ½à³°¥â¡¼¥É¤Ë¤è¤ê±Æ¶Á¤ò¼õ¤±¤ëÉâÆ°¾®¿ôÅÀ±é»»¤Ë³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë¾ì¹ç (¤¿¤È¤¨¤Ð¡¢È¯¹Ô¤µ¤ì¤¿¤¬¡¢¥³¥ó¥Æ¥­¥¹¥È¤ÎÀÚ¤êÂؤ¨¤¬µ¯¤­¤¿¤êÊ̤ÎÉâÆ°¾®¿ôÅÀÌ¿Î᤬¥È¥é¥Ã¥×¤òµ¯¤³¤·¤¿¤ê¤·¤Æ´°Î»¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ê¤É)¡¢¥«¡¼¥Í¥ë¥½¥Õ¥È¥¦¥§¥¢¤¬É¸½à¤Î IEEE ±é»»¤ò»ÈÍѤ·¤Æ¤½¤ì¤ò¥¨¥ß¥å¥ì¡¼¥È¤·¤Þ¤¹¡£¤½¤Î¤¿¤áÆÃÊ̤ʾõ¶·¤Ç¤Ï¡¢É¸½à³°¥â¡¼¥É¤ÇÆ°ºî¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤¬¡¢¥·¥¹¥Æ¥àÉé²Ù¤Ë±þ¤¸¤Æ¾¯¡¹°Û¤Ê¤ë·ë²Ì¤ò½Ð¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£¼ÂºÝ¤Ë¤Ï¡¢¤Þ¤À¤³¤Î¤è¤¦¤ÊÆ°ºî¤Ïȯ¸«¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î¤è¤¦¤ÊÆ°ºî¤Ï¡¢²¿É´Ëü²ó¤â¤Î±é»»¤ÎÃæ¤Î 1 ¤Ä¤Î±é»»¤¬Ãʳ¬Åª¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ç¼Â¹Ô¤µ¤ì¤ë¤«¡¢¤½¤ì¤È¤âÈóÃʳ¬Åª¤Ê¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ç¼Â¹Ô¤µ¤ì¤ë¤«¤È¤¤¤¦¤³¤È¤ËÈó¾ï¤ËÉÒ´¶¤Ê¥×¥í¥°¥é¥à¤À¤±¤Ë±Æ¶Á¤¹¤ë¤È»×¤ï¤ì¤Þ¤¹¡£

fpversion(1) ´Ø¿ô ¡Ý FPU ¤Ë´Ø¤¹¤ë¾ðÊó¤Î¸¡º÷

¥³¥ó¥Ñ¥¤¥é¤È¶¦¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë fpversion ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë CPU ¤ò¼±Ê̤·¡¢¥×¥í¥»¥Ã¥µ¤È¥·¥¹¥Æ¥à¥Ð¥¹¤Î¥¯¥í¥Ã¥¯Â®ÅÙ¤òͽ¬¤·¤Þ¤¹¡£
fpversion ¤Ï¡¢CPU ¤È FPU ¤Ë¤è¤Ã¤Æ³ÊǼ¤µ¤ì¤¿¼±Ê̾ðÊó¤ò²ò¼á¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢CPU ¤È FPU ¤Î·¿¤ò³ÎÄꤷ¤Þ¤¹¡£¤Þ¤¿¡¢Í½Â¬²Äǽ¤Ê»þ´ÖÆâ¤ËÆ°ºî¤¹¤ë¥·¥ó¥×¥ë¤ÊÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¥ë¡¼¥×¤Î»þ´Ö¤ò¬¤ë¤³¤È¤Ë¤è¤ê¡¢¤½¤ì¤é¤Î¥¯¥í¥Ã¥¯Â®ÅÙ¤ò¿äÄꤷ¤Þ¤¹¡£¤³¤Î¥ë¡¼¥×¤Ï¡¢»þ´Ö·×¬¤ÎÀµ³ÎÅÙ¤ò¾å¤²¤ë¤è¤¦¤Ë²¿ÅÙ¤â¼Â¹Ô¤µ¤ì¤ë¤¿¤á¡¢fpversion ¤Î·ë²Ì¤Ï¨ºÂ¤Ë¤Ï½Ð¤Þ¤»¤ó¡£¼Â¹Ô¤Ë¤Ï¿ôÉ䫤«¤ê¤Þ¤¹¡£

fpversion ¤Ï¡¢¥Û¥¹¥È¥·¥¹¥Æ¥à¤Ë»ÈÍѤ¹¤ë¾å¤ÇºÇŬ¤Ê -xtarget ¥³¡¼¥ÉÀ¸À®¥ª¥×¥·¥ç¥ó¤âÊó¹ð¤·¤Þ¤¹¡£

Ultra 4 ¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤Ç¤Ï¡¢fpversion ¤Ï¾ðÊó¤ò¼¡¤Î¤è¤¦¤Ëɽ¼¨¤·¤Þ¤¹¡£¤³¤Îɽ¼¨¤Ï¡¢¥¿¥¤¥ß¥ó¥°¤ä¥Þ¥·¥ó¹½À®¤Î°ã¤¤¤Ë¤è¤Ã¤Æ¿¾¯°Û¤Ê¤ê¤Þ¤¹¡£

demo% fpversion 
 A SPARC-based CPU is available.
 CPU's clock rate appears to be approximately 461.1 MHz.
 Kernel says CPU's clock rate is 480.0 MHz.
 Kernel says main memory's clock rate is 120.0 MHz.

 
 Sun-4 floating-point controller version 0 found.
 An UltraSPARC chip is available.
 FPU's frequency appears to be approximately 492.7 MHz.

 
 Use "-xtarget=ultra2 -xcache=16/32/1:2048/64/1" 
code-generation option.

 
 Hostid = hardware_host_id

¾ÜºÙ¤Ï¡¢fpversion(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£


¥µ¥ó¡¦¥Þ¥¤¥¯¥í¥·¥¹¥Æ¥à¥º³ô¼°²ñ¼Ò
Copyright information. All rights reserved.
¥Û¡¼¥à   |   Ìܼ¡   |   Á°¥Ú¡¼¥¸¤Ø   |   ¼¡¥Ú¡¼¥¸¤Ø   |   º÷°ú