[RV64_DYNAREC] config vector before VLE in sse_get_reg_vector#3624
[RV64_DYNAREC] config vector before VLE in sse_get_reg_vector#3624zqb-all wants to merge 1 commit intoptitSeb:mainfrom
Conversation
|
box64/src/dynarec/rv64/dynarec_rv64_660f_vector.c Lines 508 to 521 in 24065ff Line 520: The if condition is not met, not SET_ELEMENT_WIDTH here box64/src/dynarec/rv64/dynarec_rv64_helper.h Lines 454 to 462 in 24065ff Line 456: GETEX_vector calls sse_get_reg_vector. My initial thought was to remove the |
ksco
left a comment
There was a problem hiding this comment.
My initial thought was to remove the if (!MODREG) condition in instructions like PMOVSXBW, always SET_ELEMENT_WIDTH. However, it seems cleaner to add SET_ELEMENT_WIDTH directly inside sse_get_reg_vector, and it also avoids potential bugs in other places that call sse_get_reg_vector without SET_ELEMENT_WIDTH first.
Thanks. SET_ELEMENT_WIDTH is not free, I think it's better to keep it explicit, so replacing all the if (!MODREG) SET_ELEMENT_WIDTH(x1, VECTOR_SEW8, 1); with SET_ELEMENT_WIDTH(x1, VECTOR_SEW8, 1); is preferred.
|
I have another concern: what do you think? |
Oh yeah, indeed. We need some |
|
thanks, make sense, I will add |
PMOV not read 128bit, need GETEX64/GETEX32/GETEX16
3548b05 to
8c7bff7
Compare
|
|
||
| // Get EX as a quad, (x1 is used) | ||
| #define GETEX_vector(a, w, D, sew) \ | ||
| SET_ELEMENT_WIDTH(x1, sew, 1); \ |
There was a problem hiding this comment.
GETEX_PARTIAL_vector internally contains SET_ELEMENT_WIDTH, should we also add SET_ELEMENT_WIDTH here? If so, the next step would be to remove all SET_ELEMENT_WIDTH calls that appear before any invocation of GETEX_vector
No description provided.