added support for variables and parameters as array. also improved conversion of variables and parameters into Expressionelement
Some checks are pending
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.10) (push) Waiting to run
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.6) (push) Waiting to run
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, pre) (push) Waiting to run

This commit is contained in:
2025-05-09 11:04:10 +02:00
parent aaa3f2c7c0
commit 2c8a9cd2d8
7 changed files with 101 additions and 67 deletions

View File

@ -220,21 +220,20 @@ function generate_calculation_code(expression::ExpressionProcessing.PostfixType,
println(codeBuffer, operation)
push!(operands, resultRegister)
elseif token.Type == INDEX
if token.Value > 0 # varaibles
var, first_access = Utils.get_register_for_name(regManager, "x$(token.Value)")
if first_access
println(codeBuffer, load_into_register(var, variablesLocation, token.Value, threadId64Reg, variablesSetSize, regManager))
end
push!(operands, var)
else
absVal = abs(token.Value)
param, first_access = Utils.get_register_for_name(regManager, "p$absVal")
if first_access
println(codeBuffer, load_into_register(param, parametersLocation, absVal, exprId64Reg, parametersSetSize, regManager))
end
push!(operands, param)
elseif token.Type == VARIABLE
var, first_access = Utils.get_register_for_name(regManager, "x$(token.Value)")
if first_access
println(codeBuffer, load_into_register(var, variablesLocation, token.Value, threadId64Reg, variablesSetSize, regManager))
end
push!(operands, var)
elseif token.Type == PARAMETER
param, first_access = Utils.get_register_for_name(regManager, "p$(token.Value)")
if first_access
println(codeBuffer, load_into_register(param, parametersLocation, token.Value, exprId64Reg, parametersSetSize, regManager))
end
push!(operands, param)
else
throw("Token unkown. Token was '$(token)'")
end
end