mirror of
https://github.com/irmen/prog8.git
synced 2026-10-22 05:02:58 +00:00
fix m68k concat
This commit is contained in:
1 parent
4dfcb59b6f
commit
f498f598bf
2 files changed
+4
-6
No files matched your search
@@ -50,8 +50,8 @@ internal fun AsmGen.translateArithmetic(insn: IRInstruction) {
|
||||
Opcode.ADDR -> {
|
||||
val dstReg = r1 ?: error("ADDR needs reg1")
|
||||
val srcReg = r2 ?: error("ADDR needs reg2")
|
||||
emitLine("move${memSuffix(type)} ${regAddr(srcReg)}, d0")
|
||||
emitLine("add${memSuffix(type)} d0, ${regAddr(dstReg)}")
|
||||
emitLine("move${dtSuffix(type)} ${regAddr(srcReg)}, d0")
|
||||
emitLine("add${dtSuffix(type)} d0, ${regAddr(dstReg)}")
|
||||
}
|
||||
|
||||
Opcode.ADD -> {
|
||||
|
||||
@@ -259,16 +259,14 @@ internal fun AsmGen.translateControl(insn: IRInstruction) {
|
||||
// r1 = WORD(r2 as MSB, r3 as LSB)
|
||||
emitLine("move.b ${regAddr(srcReg2)}, d0")
|
||||
emitLine("lsl.w #8, d0")
|
||||
emitLine("move.b ${regAddr(srcReg3)}, d1")
|
||||
emitLine("or.w d1, d0")
|
||||
emitLine("or.b ${regAddr(srcReg3)}, d0")
|
||||
emitLine("move.w d0, ${regAddr(dstReg)}")
|
||||
}
|
||||
IRDataType.WORD -> {
|
||||
// r1 = LONG(r2 as MSW, r3 as LSW)
|
||||
emitLine("move.w ${regAddr(srcReg2)}, d0")
|
||||
emitLine("lsl.l #16, d0")
|
||||
emitLine("move.w ${regAddr(srcReg3)}, d1")
|
||||
emitLine("or.l d1, d0")
|
||||
emitLine("or.w ${regAddr(srcReg3)}, d0")
|
||||
emitLine("move.l d0, ${regAddr(dstReg)}")
|
||||
}
|
||||
else -> TODO("CONCAT for ${type.name}")
|
||||
|
||||
Reference in new issue
Block a user