Skip to content

Commit 0a03291

Browse files
committed
Allocate Windows 64 shadow stack space
1 parent ff0e39b commit 0a03291

File tree

1 file changed

+30
-10
lines changed

1 file changed

+30
-10
lines changed

ext/opcache/jit/zend_jit_x86.dasc

+30-10
Original file line numberDiff line numberDiff line change
@@ -2665,7 +2665,9 @@ static int zend_jit_assign_const_stub(dasm_State **Dst)
26652665
uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN;
26662666

26672667
|->assign_const:
2668-
|.if X64
2668+
|.if X64WIN
2669+
| sub r4, 0x28
2670+
|.elif X64
26692671
| sub r4, 8
26702672
|.else
26712673
| sub r4, 12
@@ -2677,7 +2679,9 @@ static int zend_jit_assign_const_stub(dasm_State **Dst)
26772679
0, 0)) {
26782680
return 0;
26792681
}
2680-
|.if X64
2682+
|.if X64WIN
2683+
| add r4, 0x28
2684+
|.elif X64
26812685
| add r4, 8
26822686
|.else
26832687
| add r4, 12
@@ -2693,7 +2697,9 @@ static int zend_jit_assign_tmp_stub(dasm_State **Dst)
26932697
uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN;
26942698

26952699
|->assign_tmp:
2696-
|.if X64
2700+
|.if X64WIN
2701+
| sub r4, 0x28
2702+
|.elif X64
26972703
| sub r4, 8
26982704
|.else
26992705
| sub r4, 12
@@ -2705,7 +2711,9 @@ static int zend_jit_assign_tmp_stub(dasm_State **Dst)
27052711
0, 0)) {
27062712
return 0;
27072713
}
2708-
|.if X64
2714+
|.if X64WIN
2715+
| add r4, 0x28
2716+
|.elif X64
27092717
| add r4, 8
27102718
|.else
27112719
| add r4, 12
@@ -2721,7 +2729,9 @@ static int zend_jit_assign_var_stub(dasm_State **Dst)
27212729
uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF;
27222730

27232731
|->assign_var:
2724-
|.if X64
2732+
|.if X64WIN
2733+
| sub r4, 0x28
2734+
|.elif X64
27252735
| sub r4, 8
27262736
|.else
27272737
| sub r4, 12
@@ -2733,7 +2743,9 @@ static int zend_jit_assign_var_stub(dasm_State **Dst)
27332743
0, 0)) {
27342744
return 0;
27352745
}
2736-
|.if X64
2746+
|.if X64WIN
2747+
| add r4, 0x28
2748+
|.elif X64
27372749
| add r4, 8
27382750
|.else
27392751
| add r4, 12
@@ -2749,7 +2761,9 @@ static int zend_jit_assign_cv_noref_stub(dasm_State **Dst)
27492761
uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN/*|MAY_BE_UNDEF*/;
27502762

27512763
|->assign_cv_noref:
2752-
|.if X64
2764+
|.if X64WIN
2765+
| sub r4, 0x28
2766+
|.elif X64
27532767
| sub r4, 8
27542768
|.else
27552769
| sub r4, 12
@@ -2761,7 +2775,9 @@ static int zend_jit_assign_cv_noref_stub(dasm_State **Dst)
27612775
0, 0)) {
27622776
return 0;
27632777
}
2764-
|.if X64
2778+
|.if X64WIN
2779+
| add r4, 0x28
2780+
|.elif X64
27652781
| add r4, 8
27662782
|.else
27672783
| add r4, 12
@@ -2777,7 +2793,9 @@ static int zend_jit_assign_cv_stub(dasm_State **Dst)
27772793
uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF/*|MAY_BE_UNDEF*/;
27782794

27792795
|->assign_cv:
2780-
|.if X64
2796+
|.if X64WIN
2797+
| sub r4, 0x28
2798+
|.elif X64
27812799
| sub r4, 8
27822800
|.else
27832801
| sub r4, 12
@@ -2789,7 +2807,9 @@ static int zend_jit_assign_cv_stub(dasm_State **Dst)
27892807
0, 0)) {
27902808
return 0;
27912809
}
2792-
|.if X64
2810+
|.if X64WIN
2811+
| add r4, 0x28
2812+
|.elif X64
27932813
| add r4, 8
27942814
|.else
27952815
| add r4, 12

0 commit comments

Comments
 (0)