X Tutup
Skip to content

Commit 1154730

Browse files
committed
Remove opOperatorPow opcode, ^ is now making implicit call to pow() instead
1 parent 1adf507 commit 1154730

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

ScriptEngine.pas

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ interface
122122
opOperatorMul,
123123
opOperatorDiv,
124124
opOperatorMod,
125-
opOperatorPow,
126125
opOperatorNegative,
127126
opOperatorLesser,
128127
opOperatorLesserOrEqual,
@@ -764,7 +763,6 @@ TSECacheMap = class(TSECacheMapAncestor)
764763
1, // opOperatorMul,
765764
1, // opOperatorDiv,
766765
1, // opOperatorMod,
767-
1, // opOperatorPow,
768766
1, // opOperatorNegative,
769767
1, // opOperatorLesser,
770768
1, // opOperatorLesserOrEqual,
@@ -5603,7 +5601,6 @@ procedure TSEVM.Exec;
56035601
labelOperatorMul,
56045602
labelOperatorDiv,
56055603
labelOperatorMod,
5606-
labelOperatorPow,
56075604
labelOperatorNegative,
56085605
labelOperatorLesser,
56095606
labelOperatorLesserOrEqual,
@@ -5677,7 +5674,6 @@ procedure TSEVM.Exec;
56775674
@labelOperatorMul,
56785675
@labelOperatorDiv,
56795676
@labelOperatorMod,
5680-
@labelOperatorPow,
56815677
@labelOperatorNegative,
56825678
@labelOperatorLesser,
56835679
@labelOperatorLesserOrEqual,
@@ -6442,15 +6438,6 @@ procedure TSEVM.Exec;
64426438
Self.BinaryPtr := BinaryPtrLocal;
64436439
Exit;
64446440
end;
6445-
{$ifndef SE_COMPUTED_GOTO}opOperatorPow:{$endif}
6446-
begin
6447-
labelOperatorPow:
6448-
B := Pop;
6449-
A := Pop;
6450-
Push(Power(A^.VarNumber, B^.VarNumber));
6451-
Inc(CodePtrLocal);
6452-
DispatchGoto;
6453-
end;
64546441
{$ifndef SE_COMPUTED_GOTO}opHlt:{$endif}
64556442
begin
64566443
labelHlt:
@@ -8839,14 +8826,23 @@ procedure TEvilC.Parse;
88398826
procedure Pow;
88408827
var
88418828
Token: TSEToken;
8829+
FuncInfo: PSEFuncNativeInfo;
8830+
FuncIndex: Integer;
88428831
begin
88438832
SignedFactor;
88448833
while True do
88458834
begin
88468835
Token := PeekAtNextToken;
88478836
case Token.Kind of
88488837
tkPow:
8849-
BinaryOp(opOperatorPow, @SignedFactor);
8838+
begin
8839+
// BinaryOp(opOperatorPow, @SignedFactor);
8840+
NextToken;
8841+
PeekAtNextTokenExpected([tkBracketOpen, tkSquareBracketOpen, tkDot, tkNumber, tkString, tkNegative, tkIdent]);
8842+
SignedFactor;
8843+
FuncInfo := FindFuncNative('pow', FuncIndex);
8844+
Emit([Pointer(opCallNative), Pointer(FuncIndex), Pointer(2), Pointer(0)])
8845+
end;
88508846
else
88518847
Exit;
88528848
end;

0 commit comments

Comments
 (0)
X Tutup