mirror of
https://github.com/irmen/prog8.git
synced 2025-02-16 22:30:46 +00:00
fix crash when printing Ast for asmsubroutine with multiple return values
This commit is contained in:
parent
ae648b8a0a
commit
dc600cc3ed
@ -172,8 +172,19 @@ class AstToSourceCode(val output: (text: String) -> Unit, val program: Program):
|
||||
output(") ")
|
||||
}
|
||||
if(subroutine.returntypes.any()) {
|
||||
val rt = subroutine.returntypes.single()
|
||||
output("-> ${datatypeString(rt)} ")
|
||||
if(subroutine.asmReturnvaluesRegisters.isNotEmpty()) {
|
||||
val rts = subroutine.returntypes.zip(subroutine.asmReturnvaluesRegisters).joinToString(", ") {
|
||||
val dtstr = datatypeString(it.first)
|
||||
if(it.second.registerOrPair!=null)
|
||||
"$dtstr @${it.second.registerOrPair}"
|
||||
else
|
||||
"$dtstr @${it.second.statusflag}"
|
||||
}
|
||||
output("-> $rts ")
|
||||
} else {
|
||||
val rts = subroutine.returntypes.joinToString(", ") { datatypeString(it) }
|
||||
output("-> $rts ")
|
||||
}
|
||||
}
|
||||
if(subroutine.asmAddress!=null)
|
||||
outputln("= ${subroutine.asmAddress.toHex()}")
|
||||
|
@ -223,7 +223,7 @@ private fun writeAssembly(programAst: Program, errors: ErrorReporter, outputDir:
|
||||
programAst.processAstBeforeAsmGeneration(errors)
|
||||
errors.handle()
|
||||
|
||||
printAst(programAst)
|
||||
// printAst(programAst)
|
||||
|
||||
CompilationTarget.instance.machine.initializeZeropage(compilerOptions)
|
||||
val assembly = CompilationTarget.instance.asmGenerator(
|
||||
|
Loading…
x
Reference in New Issue
Block a user