- implemented vector operations. Vectors are now fully working as local variables.

- removed mulv_kr and divv_kr instructions. The first are redundant and the second are useless. Maybe remove all other vector/const operations as well? They won't get used by the code generator.
- fixed disassembly of vector multiplication and division instructions.
This commit is contained in:
Christoph Oelckers 2016-10-29 01:39:25 +02:00
commit e5878f0cb2
5 changed files with 193 additions and 62 deletions

View file

@ -1352,11 +1352,6 @@ begin:
fc = konstf[C];
fbp = &reg.f[B];
goto Do_MULV2;
OP(MULVF2_KR):
ASSERTF(a+1); ASSERTKF(B+1); ASSERTF(C);
fc = reg.f[C];
fbp = &konstf[B];
goto Do_MULV2;
OP(DIVVF2_RR):
ASSERTF(a+1); ASSERTF(B+1); ASSERTF(C);
@ -1371,11 +1366,6 @@ begin:
fc = konstf[C];
fbp = &reg.f[B];
goto Do_DIVV2;
OP(DIVVF2_KR):
ASSERTF(a+1); ASSERTKF(B+1); ASSERTF(C);
fc = reg.f[C];
fbp = &konstf[B];
goto Do_DIVV2;
OP(LENV2):
ASSERTF(a); ASSERTF(B+1);
@ -1488,11 +1478,6 @@ begin:
fc = konstf[C];
fbp = &reg.f[B];
goto Do_MULV3;
OP(MULVF3_KR):
ASSERTF(a+2); ASSERTKF(B+2); ASSERTF(C);
fc = reg.f[C];
fbp = &konstf[B];
goto Do_MULV3;
OP(DIVVF3_RR):
ASSERTF(a+2); ASSERTF(B+2); ASSERTF(C);
@ -1508,11 +1493,6 @@ begin:
fc = konstf[C];
fbp = &reg.f[B];
goto Do_DIVV3;
OP(DIVVF3_KR):
ASSERTF(a+2); ASSERTKF(B+2); ASSERTF(C);
fc = reg.f[C];
fbp = &konstf[B];
goto Do_DIVV3;
OP(LENV3):
ASSERTF(a); ASSERTF(B+2);