Update test_z_inst.c

added functionality to test different modes of same instruction type
This commit is contained in:
ketank-new 2016-12-02 15:46:45 +05:30 committed by GitHub
parent 1d960f2286
commit f0cc29436c

View File

@ -32,15 +32,35 @@ void *jitcode(dasm_State **state)
return (int *)ret; return (int *)ret;
} }
void add(dasm_State *state) void add(dasm_State *state , int mode)
{ {
dasm_State ** Dst = &state; dasm_State ** Dst = &state;
| ar r2,r3 switch(mode)
| br r14 {
/* Case RR instruction mode */
case 0:
{
| ar r2,r3
| br r14
break;
}
/* Case RIL instruction mode */
case 1:
{
| ar r2,0x16
| br r14
break;
}
default:
{
printf( " Mode not recognised \n ");
break;
}
}
} }
void sub(dasm_State *state) void sub(dasm_State *state , int mode)
{ {
dasm_State **Dst = &state; dasm_State **Dst = &state;
@ -48,7 +68,7 @@ void sub(dasm_State *state)
| br r14 | br r14
} }
void mul(dasm_State *state) void mul(dasm_State *state, int mode)
{ {
dasm_State **Dst = &state; dasm_State **Dst = &state;
@ -73,8 +93,8 @@ void main(int argc, char *argv[])
dasm_setup(&state, actions); dasm_setup(&state, actions);
/* Call respective test function */ /* Call respective test function */
sub(state); add(state , 0);
ret = fptr(num1 , num2); ret = fptr(num1 , num2);
printf("The value is %d\n" ,ret); printf("Result is %d\n" ,ret);
} }