/// 未サポートの命令 /// ・Alternate Address Spaceに関わる命令は全て未サポートとした。 CASA Compare and Swap Word from Alternate space CASXA Compare and Swap Extended from Alternate space LDFA Load Floating-Point Register from Alternate space LDDFA Load Double Floating-Point Register from Alternate space LDQFA Load QuadFloating-Point Register from Alternate space LDSBA Load Signed Byte from Alternate space LDSHA Load Signed Halfword from Alternate space LDSWA Load Signed Word from Alternate space LDUBA Load Unsigned Byte from Alternate space LDUHA Load Unsigned Halfword from Alternate space LDUWA Load Unsigned Word from Alternate space LDXA Load Extended Word from Alternate space LDDA Load Doubleword from Alternate space LDSTUBA Load-Store Unsigned Byte into Alternate space STFA Store Floating-Point Register to Alternate Space STDFA Store Double Floating-Point Register to Alternate Space STQFA Store Quad Floating-Point Register to Alternate Space STBA Store Byte into Alternate space STHA Store Halfword into Alternate space STWA Store Word into Alternate space STXA Store Extended Word into Alternate space STDA Store Doubleword into Alternate space *** Deprecated *** SWAPA SWAP register with Alternate space memory ・TRAP機能に関わる命令は未サポートとした。 DONE Return from Trap (skip trapped instruction) RETRY Return from Trap (retry trapped instruction) TADDccTV Tagged Add and modify cc's, or Trap on Overflow TSUBccTV Tagged Subtract and modify cc's, or Trap on Overflow Tcc Trap on Integer Condition Codes ・4倍精度浮動小数点数に関わる命令は未サポートとした。 FADDq Add Quad FSUBq Subtract Quad FCMPq Compare Quad FCMPEq Compare Quad and Exception if Unordered FqTOx Convert Quad to 64-bit Integer FqTOi Convert Quad to 32-bit Integer FsTOq Convert Single to Quad FdTOq Convert Double to Quad FqTOs Convert Quad to Single FqTOd Convert Quad to Double FxTOq Convert 64-bit Integer to Quad FiTOq Convert 32-bit Integer to Quad FMOVq Move Quad FNEGq Negate Quad FABSq Absolute Value Quad FMULq Multiply Quad FdMULq Multiply Double to Quad FDIVq Divide Quad LDQF Load Quad Floating-Point Register FMOVcc Move Floating-Point Register on Condition (4倍精度指定) FMOVr Move F-P Register on Integer Register Condition (4倍精度指定) STQF Quad Floating-Point Register ・平方根演算命令は未サポートとした。 FSQRTs Square Root Single FSQRTd Square Root Double FSQRTq Square Root Quad ・仮想記憶制御、キャッシュ制御に関わる命令は未サポートとした。 FLUSH Flush Instruction Memory MEMBAR Memory Barrier PREFETCH Prefetch Data PREFETCHA Prefetch Data from Alternate Space STBAR Store Barrier ・レジスタ・ウィンドウ操作に関わる命令は削除した。 FLUSHW Flush Register Windows RETURN RETURN SAVE Save caller's window RESTORE Restore caller's window SAVED Window has been Saved RESTORED Window has been Restored ・浮動小数点ステータス・レジスタ(%fsr)に関わる命令は未サポートとした。 LDFSR Load Floating-Point State Register Lower LDXFSR Load Floating-Point State Register STFSR Store Floating-Point State Register Lower *** Deprecated *** STXFSR Store Floating-Point State Register ・Population Count命令は未サポートとした。 POPC Population Count ・ステータス・レジスタ、制御レジスタに関わる命令は一部未サポートとした。 RDPR Read Privileged Register RDCCR Read Condition Codes Register RDASI Read ASI Register RDTICK Read Tick Register RDFPRS Read Floating-Point Registers Status Register RDASR Read Ancillary State Register (reserved) RDASR Implementation-dependent (impl. dep. #47) WRPR Write Privileged Register WRCCR Write Condition Codes Register WRASI Write ASI register WRASR Write Ancillary State Register (reserved) WRFPRS Write Floating-Point Registers Status register ・VIS命令のlittle endianモードに関わる命令は未サポートとした。 EDGE8L Eight 8-bit edge boundary processing, little-endian EDGE16L Four 16-bit edge boundary processing, little-endian EDGE32L Two 32-bit edge boundary processing, little-endian ・VIS命令の Partial Store Instructionsは未サポートとした。 STDFA Eight 8-bit conditional stores to alternate address space ・VIS命令の Short Floating-Point Load and Store Instructionsは未サポートとした。 LDDFA 8-bit/16-bit load from alternate address space STDFA 8-bit/16-bit store to alternate address space ・VIS命令の Block Load and Store Instructionsは未サポートとした。 LDDFA 64-byte block load from alternate address space STDFA 64-byte block store to alternate address space ・VIS命令のAtomic Quad Load命令は未サポートとした。 LDDA 128-bit atomic load LDDA 128-bit atomic load, little-endian ・VIS命令のSHUTDOWNは未サポートとした。 /// 疑問のある命令 /// ・アトミック操作(非可分操作)命令 単純なswap操作と区別がつかない。非可分操作であることを明示しなくて良いか? LDSTUB Load-Store Unsigned Byte ・単精度浮動小数点数 F64の浮動小数点数レジスタをF32のSUBREGでアクセスして良いか? ・浮動小数点数⇔整数変換命令 浮動小数点レジスタに整数表現をそのままの形式で置く必要がある。 FsTOx Convert Single to 64-bit Integer FdTOx Convert Double to 64-bit Integer FqTOx Convert Quad to 64-bit Integer FsTOi Convert Single to 32-bit Integer FdTOi Convert Double to 32-bit Integer FqTOi Convert Quad to 32-bit Integer FxTOs Convert 64-bit Integer to Single FxTOd Convert 64-bit Integer to Double FxTOq Convert 64-bit Integer to Quad FiTOs Convert 32-bit Integer to Single FiTOd Convert 32-bit Integer to Double FiTOq Convert 32-bit Integer to Quad ・VIS命令で、64ビット浮動小数点レジスタをI32、I16、I8のSUBREGでアクセスしている。