1
0
mirror of https://github.com/KarolS/millfork.git synced 2025-02-06 01:30:13 +00:00

Define Constant.WordZero

This commit is contained in:
Karol Stasiak 2019-10-23 11:03:55 +02:00
parent aa09bc90a4
commit 9beac45e99
4 changed files with 5 additions and 4 deletions

View File

@ -38,7 +38,7 @@ object PseudoregisterBuiltIns {
val result = ListBuffer[AssemblyLine]() val result = ListBuffer[AssemblyLine]()
var hard = Option.empty[List[AssemblyLine]] var hard = Option.empty[List[AssemblyLine]]
val niceReads = mutable.ListBuffer[(List[AssemblyLine], List[AssemblyLine])]() val niceReads = mutable.ListBuffer[(List[AssemblyLine], List[AssemblyLine])]()
var constant: Constant = NumericConstant(0, 2) var constant: Constant = Constant.WordZero
var counter = 0 var counter = 0
for ((subtract, read) <- reads) { for ((subtract, read) <- reads) {
read match { read match {

View File

@ -188,7 +188,7 @@ object ZBuiltIns {
} }
def compile16BitSum(ctx: CompilationContext, params: List[(Boolean, Expression)], decimal: Boolean): List[ZLine] = { def compile16BitSum(ctx: CompilationContext, params: List[(Boolean, Expression)], decimal: Boolean): List[ZLine] = {
var const: Constant = NumericConstant(0, 2) var const: Constant = Constant.WordZero
var hasConst = false var hasConst = false
var result = mutable.ListBuffer[ZLine]() var result = mutable.ListBuffer[ZLine]()
if (decimal) { if (decimal) {
@ -222,7 +222,7 @@ object ZBuiltIns {
case _ => case _ =>
if (result.isEmpty) { if (result.isEmpty) {
result += ZLine.ldImm16(ZRegister.HL, const) result += ZLine.ldImm16(ZRegister.HL, const)
const = NumericConstant(0, 2) const = Constant.WordZero
hasConst = false hasConst = false
} }
if (ctx.options.flag(CompilationFlag.EmitExtended80Opcodes)) { if (ctx.options.flag(CompilationFlag.EmitExtended80Opcodes)) {

View File

@ -5,6 +5,7 @@ import millfork.output.DivisibleAlignment
object Constant { object Constant {
val Zero: Constant = NumericConstant(0, 1) val Zero: Constant = NumericConstant(0, 1)
val WordZero: Constant = NumericConstant(0, 2)
val One: Constant = NumericConstant(1, 1) val One: Constant = NumericConstant(1, 1)
def apply(i: Long): Constant = NumericConstant(i, minimumSize(i)) def apply(i: Long): Constant = NumericConstant(i, minimumSize(i))

View File

@ -473,7 +473,7 @@ class Environment(val parent: Option[Environment], val prefix: String, val cpuFa
addUnexpandedWordConstant(s"segment.$segment.length") addUnexpandedWordConstant(s"segment.$segment.length")
addUnexpandedByteConstant(s"segment.$segment.bank") addUnexpandedByteConstant(s"segment.$segment.bank")
} }
addThing(ConstantThing("$0000", NumericConstant(0, 2), p), None) addThing(ConstantThing("$0000", Constant.WordZero, p), None)
addThing(FlagBooleanType("set_carry", addThing(FlagBooleanType("set_carry",
BranchingOpcodeMapping(Opcode.BCS, IfFlagSet(ZFlag.C), MOpcode.BCS), BranchingOpcodeMapping(Opcode.BCS, IfFlagSet(ZFlag.C), MOpcode.BCS),
BranchingOpcodeMapping(Opcode.BCC, IfFlagClear(ZFlag.C), MOpcode.BCC)), BranchingOpcodeMapping(Opcode.BCC, IfFlagClear(ZFlag.C), MOpcode.BCC)),