Skip to content

Commit 28b4f58

Browse files
authored
JIT/AArch64: Optimize add+ldr to ldr (#7109)
This patch is trivial. Change-Id: I51b8eb5f12446643a53cc569d9398d0941a2f588
1 parent 2963214 commit 28b4f58

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

ext/opcache/jit/zend_jit_arm64.dasc

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2447,25 +2447,22 @@ static int zend_jit_trace_exit_stub(dasm_State **Dst)
24472447
| ldr REG0, EX->func
24482448
| ldr REG0, [REG0, #offsetof(zend_op_array, reserved[zend_func_info_rid])]
24492449
| ldr REG0, [REG0, #offsetof(zend_jit_op_array_trace_extension, offset)]
2450-
| add REG0, IP, REG0
2451-
| ldr REG0, [REG0]
2450+
| ldr REG0, [IP, REG0]
24522451
| br REG0
24532452
} else if (GCC_GLOBAL_REGS) {
24542453
| ldp x29, x30, [sp], # SPAD // stack alignment
24552454
| ldr REG0, EX->func
24562455
| ldr REG0, [REG0, #offsetof(zend_op_array, reserved[zend_func_info_rid])]
24572456
| ldr REG0, [REG0, #offsetof(zend_jit_op_array_trace_extension, offset)]
2458-
| add REG0, IP, REG0
2459-
| ldr REG0, [REG0]
2457+
| ldr REG0, [IP, REG0]
24602458
| br REG0
24612459
} else {
24622460
| ldr IP, EX->opline
24632461
| mov FCARG1x, FP
24642462
| ldr REG0, EX->func
24652463
| ldr REG0, [REG0, #offsetof(zend_op_array, reserved[zend_func_info_rid])]
24662464
| ldr REG0, [REG0, #offsetof(zend_jit_op_array_trace_extension, offset)]
2467-
| add REG0, IP, REG0
2468-
| ldr REG0, [REG0]
2465+
| ldr REG0, [IP, REG0]
24692466
| blr REG0
24702467
|
24712468
| tst RETVALw, RETVALw
@@ -3115,8 +3112,7 @@ static int zend_jit_trace_return(dasm_State **Dst, bool original_handler)
31153112
| ldr REG0, EX->func
31163113
| ldr REG0, [REG0, #offsetof(zend_op_array, reserved[zend_func_info_rid])]
31173114
| ldr REG0, [REG0, #offsetof(zend_jit_op_array_trace_extension, offset)]
3118-
| add REG0, IP, REG0
3119-
| ldr REG0, [REG0]
3115+
| ldr REG0, [IP, REG0]
31203116
| br REG0
31213117
}
31223118
} else if (GCC_GLOBAL_REGS) {
@@ -3127,8 +3123,7 @@ static int zend_jit_trace_return(dasm_State **Dst, bool original_handler)
31273123
| ldr REG0, EX->func
31283124
| ldr REG0, [REG0, #offsetof(zend_op_array, reserved[zend_func_info_rid])]
31293125
| ldr REG0, [REG0, #offsetof(zend_jit_op_array_trace_extension, offset)]
3130-
| add REG0, IP, REG0
3131-
| ldr REG0, [REG0]
3126+
| ldr REG0, [IP, REG0]
31323127
| br REG0
31333128
}
31343129
} else {
@@ -3137,8 +3132,7 @@ static int zend_jit_trace_return(dasm_State **Dst, bool original_handler)
31373132
| ldr REG0, EX->func
31383133
| ldr REG0, [REG0, #offsetof(zend_op_array, reserved[zend_func_info_rid])]
31393134
| ldr REG0, [REG0, #offsetof(zend_jit_op_array_trace_extension, offset)]
3140-
| add REG0, IP, REG0
3141-
| ldr REG0, [REG0]
3135+
| ldr REG0, [IP, REG0]
31423136
| blr REG0
31433137
}
31443138
| ldp FP, RX, T2 // retore FP and IP

0 commit comments

Comments
 (0)