ref: 54ed050ecf9a164ecb9cf368bbdedd524f23560a
parent: f262d3b34bb60c71390dd2dc1ee70d99140083e8
author: ISSOtm <[email protected]>
date: Sun Sep 8 18:28:28 EDT 2019
Make `BANK(@)` known at assembling time when possible If the current section's bank is fixed, this means this value is known prior to linking.
--- a/src/asm/rpn.c
+++ b/src/asm/rpn.c
@@ -19,6 +19,7 @@
#include "asm/main.h"
#include "asm/rpn.h"
#include "asm/symbol.h"
+#include "asm/output.h"
#include "asm/warning.h"
#include "linkdefs.h"
@@ -160,11 +161,14 @@
{
rpn_Init(expr);
- /*
- * This symbol is not really relocatable, but this makes the assembler
- * write this expression as a RPN patch to the object file.
- */
- expr->isReloc = 1;
+ if (pCurrentSection->nBank == -1)
+ /*
+ * This is not really relocatable, but this makes the assembler
+ * write this expression as a RPN patch to the object file.
+ */
+ expr->isReloc = 1;
+ else
+ expr->nVal = pCurrentSection->nBank;
pushbyte(expr, RPN_BANK_SELF);
expr->nRPNPatchSize++;