diff options
Diffstat (limited to 'src/vm_arm.dasc')
-rw-r--r-- | src/vm_arm.dasc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/vm_arm.dasc b/src/vm_arm.dasc index 013688fb..770a8e21 100644 --- a/src/vm_arm.dasc +++ b/src/vm_arm.dasc | |||
@@ -1012,9 +1012,9 @@ static void build_subroutines(BuildCtx *ctx) | |||
1012 | | cmp TAB:RB, #0 | 1012 | | cmp TAB:RB, #0 |
1013 | | beq ->fff_restv | 1013 | | beq ->fff_restv |
1014 | | ldr CARG3, TAB:RB->hmask | 1014 | | ldr CARG3, TAB:RB->hmask |
1015 | | ldr CARG4, STR:RC->hash | 1015 | | ldr CARG4, STR:RC->sid |
1016 | | ldr NODE:INS, TAB:RB->node | 1016 | | ldr NODE:INS, TAB:RB->node |
1017 | | and CARG3, CARG3, CARG4 // idx = str->hash & tab->hmask | 1017 | | and CARG3, CARG3, CARG4 // idx = str->sid & tab->hmask |
1018 | | add CARG3, CARG3, CARG3, lsl #1 | 1018 | | add CARG3, CARG3, CARG3, lsl #1 |
1019 | | add NODE:INS, NODE:INS, CARG3, lsl #3 // node = tab->node + idx*3*8 | 1019 | | add NODE:INS, NODE:INS, CARG3, lsl #3 // node = tab->node + idx*3*8 |
1020 | |3: // Rearranged logic, because we expect _not_ to find the key. | 1020 | |3: // Rearranged logic, because we expect _not_ to find the key. |
@@ -3500,10 +3500,10 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3500 | |->BC_TGETS_Z: | 3500 | |->BC_TGETS_Z: |
3501 | | // (TAB:RB =) TAB:CARG1 = GCtab *, STR:RC = GCstr *, RA = dst*8 | 3501 | | // (TAB:RB =) TAB:CARG1 = GCtab *, STR:RC = GCstr *, RA = dst*8 |
3502 | | ldr CARG3, TAB:CARG1->hmask | 3502 | | ldr CARG3, TAB:CARG1->hmask |
3503 | | ldr CARG4, STR:RC->hash | 3503 | | ldr CARG4, STR:RC->sid |
3504 | | ldr NODE:INS, TAB:CARG1->node | 3504 | | ldr NODE:INS, TAB:CARG1->node |
3505 | | mov TAB:RB, TAB:CARG1 | 3505 | | mov TAB:RB, TAB:CARG1 |
3506 | | and CARG3, CARG3, CARG4 // idx = str->hash & tab->hmask | 3506 | | and CARG3, CARG3, CARG4 // idx = str->sid & tab->hmask |
3507 | | add CARG3, CARG3, CARG3, lsl #1 | 3507 | | add CARG3, CARG3, CARG3, lsl #1 |
3508 | | add NODE:INS, NODE:INS, CARG3, lsl #3 // node = tab->node + idx*3*8 | 3508 | | add NODE:INS, NODE:INS, CARG3, lsl #3 // node = tab->node + idx*3*8 |
3509 | |1: | 3509 | |1: |
@@ -3647,10 +3647,10 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3647 | |->BC_TSETS_Z: | 3647 | |->BC_TSETS_Z: |
3648 | | // (TAB:RB =) TAB:CARG1 = GCtab *, STR:RC = GCstr *, RA = dst*8 | 3648 | | // (TAB:RB =) TAB:CARG1 = GCtab *, STR:RC = GCstr *, RA = dst*8 |
3649 | | ldr CARG3, TAB:CARG1->hmask | 3649 | | ldr CARG3, TAB:CARG1->hmask |
3650 | | ldr CARG4, STR:RC->hash | 3650 | | ldr CARG4, STR:RC->sid |
3651 | | ldr NODE:INS, TAB:CARG1->node | 3651 | | ldr NODE:INS, TAB:CARG1->node |
3652 | | mov TAB:RB, TAB:CARG1 | 3652 | | mov TAB:RB, TAB:CARG1 |
3653 | | and CARG3, CARG3, CARG4 // idx = str->hash & tab->hmask | 3653 | | and CARG3, CARG3, CARG4 // idx = str->sid & tab->hmask |
3654 | | add CARG3, CARG3, CARG3, lsl #1 | 3654 | | add CARG3, CARG3, CARG3, lsl #1 |
3655 | | mov CARG4, #0 | 3655 | | mov CARG4, #0 |
3656 | | add NODE:INS, NODE:INS, CARG3, lsl #3 // node = tab->node + idx*3*8 | 3656 | | add NODE:INS, NODE:INS, CARG3, lsl #3 // node = tab->node + idx*3*8 |