mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-21 02:32:06 +00:00
Allow inlining of two simple RPN functions
This commit is contained in:
@@ -30,8 +30,22 @@ struct Expression {
|
|||||||
/* FIXME: Should be defined in `asmy.h`, but impossible with POSIX Yacc */
|
/* FIXME: Should be defined in `asmy.h`, but impossible with POSIX Yacc */
|
||||||
extern int32_t nPCOffset;
|
extern int32_t nPCOffset;
|
||||||
|
|
||||||
bool rpn_isKnown(const struct Expression *expr);
|
/*
|
||||||
bool rpn_isSymbol(const struct Expression *expr);
|
* Determines if an expression is known at assembly time
|
||||||
|
*/
|
||||||
|
static inline bool rpn_isKnown(const struct Expression *expr)
|
||||||
|
{
|
||||||
|
return expr->isKnown;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Determines if an expression is a symbol suitable for const diffing
|
||||||
|
*/
|
||||||
|
static inline bool rpn_isSymbol(const struct Expression *expr)
|
||||||
|
{
|
||||||
|
return expr->isSymbol;
|
||||||
|
}
|
||||||
|
|
||||||
void rpn_Symbol(struct Expression *expr, char *tzSym);
|
void rpn_Symbol(struct Expression *expr, char *tzSym);
|
||||||
void rpn_Number(struct Expression *expr, uint32_t i);
|
void rpn_Number(struct Expression *expr, uint32_t i);
|
||||||
void rpn_LOGNOT(struct Expression *expr, const struct Expression *src);
|
void rpn_LOGNOT(struct Expression *expr, const struct Expression *src);
|
||||||
@@ -45,7 +59,6 @@ void rpn_UNNOT(struct Expression *expr, const struct Expression *src);
|
|||||||
void rpn_BankSymbol(struct Expression *expr, char const *tzSym);
|
void rpn_BankSymbol(struct Expression *expr, char const *tzSym);
|
||||||
void rpn_BankSection(struct Expression *expr, char const *tzSectionName);
|
void rpn_BankSection(struct Expression *expr, char const *tzSectionName);
|
||||||
void rpn_BankSelf(struct Expression *expr);
|
void rpn_BankSelf(struct Expression *expr);
|
||||||
void rpn_Init(struct Expression *expr);
|
|
||||||
void rpn_Free(struct Expression *expr);
|
void rpn_Free(struct Expression *expr);
|
||||||
void rpn_CheckHRAM(struct Expression *expr, const struct Expression *src);
|
void rpn_CheckHRAM(struct Expression *expr, const struct Expression *src);
|
||||||
void rpn_CheckRST(struct Expression *expr, const struct Expression *src);
|
void rpn_CheckRST(struct Expression *expr, const struct Expression *src);
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ static uint8_t *reserveSpace(struct Expression *expr, uint32_t size)
|
|||||||
/*
|
/*
|
||||||
* Init the RPN expression
|
* Init the RPN expression
|
||||||
*/
|
*/
|
||||||
void rpn_Init(struct Expression *expr)
|
static void rpn_Init(struct Expression *expr)
|
||||||
{
|
{
|
||||||
expr->reason = NULL;
|
expr->reason = NULL;
|
||||||
expr->isKnown = true;
|
expr->isKnown = true;
|
||||||
@@ -93,22 +93,6 @@ void rpn_Free(struct Expression *expr)
|
|||||||
rpn_Init(expr);
|
rpn_Init(expr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Determine if the current expression is known at assembly time
|
|
||||||
*/
|
|
||||||
bool rpn_isKnown(const struct Expression *expr)
|
|
||||||
{
|
|
||||||
return expr->isKnown;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Determine if the current expression is a symbol suitable for const diffing
|
|
||||||
*/
|
|
||||||
bool rpn_isSymbol(const struct Expression *expr)
|
|
||||||
{
|
|
||||||
return expr->isSymbol;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add symbols, constants and operators to expression
|
* Add symbols, constants and operators to expression
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user