2007-03-11から1日間の記事一覧

spu-g++にゃに優しいコード

こうかくとにゃ、条件分岐してしまうのですにゃ。 register ccUINT32 op = m_nOpecode.su32; if(op & 0x1000000) { m_nReg[14].vu32 = m_nNextInstructAddress.vu32; } こう書くとにゃ、分岐を使わずにゃにselb命令を使ってくれてspeに優しいコードににゃり…

最終的ににゃ

にゃんにもする前にゃは、50命令ぐらいあったにゃのが、最終的に20命令にゃに……。*1 恐るべし小ペンギン*2 ;20命令 .align 3 .global _ZN11ccDevArmCPU12exeBLX_labelEv .type _ZN11ccDevArmCPU12exeBLX_labelEv, @function _ZN11ccDevArmCPU12exeBLX_labelE…

短くにゃれ

昔はこんにゃ感じだったにゃ。*1 register ccUINT32 op = m_nOpecode; register ccUINT32 target_addr = m_nReg[15] + (((ccUINT32)(((ccINT32)(op << 8)) >> 6)) | ((op >> 23) & 0x2)); m_nReg[15] = target_addr m_nReg[14] = m_nNextInstructAddress; /*…