mirror of
https://github.com/Wack0/IFPSTools.NET.git
synced 2025-06-18 10:45:36 -04:00
asm: fix referencing arguments where function is not exported and argument list may be unknown
This commit is contained in:
parent
2dca25d95b
commit
301c583ce2
@ -537,6 +537,16 @@ namespace IFPSAsmLib
|
||||
return function.CreateArgumentVariable(i);
|
||||
}
|
||||
value = value.ToLower();
|
||||
// For a non-exported function, allow use of hardcoded Argx to refer to unknown arguments
|
||||
if (!function.Exported)
|
||||
{
|
||||
if (value.StartsWith(Constants.VARIABLE_ARG_PREFIX)) {
|
||||
if (!int.TryParse(value.Substring(Constants.VARIABLE_ARG_PREFIX.Length), out var argIdx)) return null;
|
||||
argIdx--;
|
||||
if (argIdx < 0) return null;
|
||||
return function.CreateArgumentVariable(argIdx);
|
||||
}
|
||||
}
|
||||
if (value == Constants.VARIABLE_RET) return function.CreateReturnVariable();
|
||||
if (!value.StartsWith(Constants.VARIABLE_LOCAL_PREFIX)) return null;
|
||||
if (!int.TryParse(value.Substring(Constants.VARIABLE_LOCAL_PREFIX.Length), out var idx)) return null;
|
||||
|
@ -71,6 +71,7 @@ namespace IFPSAsmLib
|
||||
|
||||
internal const string VARIABLE_RET = "retval";
|
||||
internal const string VARIABLE_LOCAL_PREFIX = "var";
|
||||
internal const string VARIABLE_ARG_PREFIX = "arg";
|
||||
|
||||
internal const string LABEL_NULL = "null";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user