/* SUB */ void test_sub() { T1=2; T2=2; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==0); T1=1; T2=2; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==1); T1=2; T2=1; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==-1); T1=1; T2=-2; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==-3); T1=-1; T2=-2; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==-1); }
/* SUB */ void test_sub() { T1 = 5; T2 = 3; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0 == -2); T1 = 3; T2 = 6; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0 == 3); }
int main(int argc, const char * argv[]) { initialize(); testPrint(create_rtype_hex(FC_ADD, 0x0000, I_T0, I_T1, I_T2, OC_ADD)); testPrint(create_itype_hex(0x0001, I_T0, I_ZERO, OC_ADDI)); testPrint(create_jtype_hex(0xCD1234, OC_J)); testPrint(create_itype_hex(0xBBBB, I_T0, I_ZERO, OC_LUI)); testPrint(create_itype_hex(0xA03B, I_T0, I_T1, OC_LW)); testPrint(create_itype_hex(0x0101, I_T0, I_T0, OC_ORI)); testPrint(create_rtype_hex(FC_SUB, 0x0002, I_T0, I_T1, I_T2, OC_SUB)); testPrint(create_itype_hex(0xD070, I_T0, I_T1, OC_SW)); testPrint(create_specialtype_hex(OC_STOP)); return 0; }
/* ADD */ void test_add() { T1=1; T2=1; test_execute(create_rtype_hex(FC_ADD, 0x0000, I_T0, I_T1, I_T2, OC_ADD)); assert(T0==2); T1=1; T2=-1; test_execute(create_rtype_hex(FC_ADD, 0x0000, I_T0, I_T1, I_T2, OC_ADD)); assert(T0==0); T1=-1; T2=-1; test_execute(create_rtype_hex(FC_ADD, 0x0000, I_T0, I_T1, I_T2, OC_ADD)); assert(T0==-2); }
/* SUB */ void test_sub() { T1 = 4; T2 = 5; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==1); T1 = 7; T2 = 3; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==-4); T1 = 4; T2 = -1; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==-5); }
/* SUB */ void test_sub() { T1=2; T2=8; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==6); T1=8; T2=2; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==-6); T1=4; T2=4; test_execute(create_rtype_hex(FC_SUB, 0x0000, I_T0, I_T1, I_T2, OC_SUB)); assert(T0==0); }
/* MULT */ void test_mult() { T1=2; T2=3; test_execute(create_rtype_hex(FC_MULT, 0x0000, I_T0, I_T1, I_T2, OC_MULT)); assert(T0==6); T1=-2; T2=3; test_execute(create_rtype_hex(FC_MULT, 0x0000, I_T0, I_T1, I_T2, OC_MULT)); assert(T0==-6); T1=2; T2=-3; test_execute(create_rtype_hex(FC_MULT, 0x0000, I_T0, I_T1, I_T2, OC_MULT)); assert(T0==-6); T1=-2; T2=-3; test_execute(create_rtype_hex(FC_MULT, 0x0000, I_T0, I_T1, I_T2, OC_MULT)); assert(T0==6); }
/* DIV */ void test_div() { T1=4; T2=8; test_execute(create_rtype_hex(FC_DIV, 0x0000, I_T0, I_T1, I_T2, OC_DIV)); assert(T0==2); T1=4; T2=5; test_execute(create_rtype_hex(FC_DIV, 0x0000, I_T0, I_T1, I_T2, OC_DIV)); assert(T0==1); T1=5; T2=4; test_execute(create_rtype_hex(FC_DIV, 0x0000, I_T0, I_T1, I_T2, OC_DIV)); assert(T0==0); T1=4; T2=-8; test_execute(create_rtype_hex(FC_DIV, 0x0000, I_T0, I_T1, I_T2, OC_DIV)); assert(T0==-2); T1=-2; T2=8; test_execute(create_rtype_hex(FC_DIV, 0x0000, I_T0, I_T1, I_T2, OC_DIV)); assert(T0==-4); T1=-8; T2=-8; test_execute(create_rtype_hex(FC_DIV, 0x0000, I_T0, I_T1, I_T2, OC_DIV)); assert(T0==1); T1=5; T2=-8; test_execute(create_rtype_hex(FC_DIV, 0x0000, I_T0, I_T1, I_T2, OC_DIV)); assert(T0==-1); }