refactor: single definition for common registers
This commit is contained in:
@@ -19,17 +19,9 @@ sealed trait RuntimeError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object RuntimeError {
|
object RuntimeError {
|
||||||
|
|
||||||
// TODO: Refactor to mitigate imports and redeclared vals perhaps
|
|
||||||
|
|
||||||
import wacc.asmGenerator.stackAlign
|
import wacc.asmGenerator.stackAlign
|
||||||
import assemblyIR.Size._
|
import assemblyIR.commonRegisters._
|
||||||
import assemblyIR.RegName._
|
|
||||||
|
|
||||||
private val RDI = Register(Q64, DI)
|
|
||||||
private val RIP = Register(Q64, IP)
|
|
||||||
private val RSI = Register(Q64, SI)
|
|
||||||
private val RCX = Register(Q64, CX)
|
|
||||||
private val ERROR_CODE = 255
|
private val ERROR_CODE = 255
|
||||||
|
|
||||||
case object ZeroDivError extends RuntimeError {
|
case object ZeroDivError extends RuntimeError {
|
||||||
|
|||||||
@@ -8,21 +8,13 @@ import wacc.RuntimeError._
|
|||||||
object asmGenerator {
|
object asmGenerator {
|
||||||
import microWacc._
|
import microWacc._
|
||||||
import assemblyIR._
|
import assemblyIR._
|
||||||
|
import assemblyIR.commonRegisters._
|
||||||
import assemblyIR.Size._
|
import assemblyIR.Size._
|
||||||
import assemblyIR.RegName._
|
import assemblyIR.RegName._
|
||||||
import types._
|
import types._
|
||||||
import sizeExtensions._
|
import sizeExtensions._
|
||||||
import lexer.escapedChars
|
import lexer.escapedChars
|
||||||
|
|
||||||
private val RAX = Register(Q64, AX)
|
|
||||||
private val EAX = Register(D32, AX)
|
|
||||||
private val RDI = Register(Q64, DI)
|
|
||||||
private val RIP = Register(Q64, IP)
|
|
||||||
private val RBP = Register(Q64, BP)
|
|
||||||
private val RSI = Register(Q64, SI)
|
|
||||||
private val RDX = Register(Q64, DX)
|
|
||||||
private val RCX = Register(Q64, CX)
|
|
||||||
private val ECX = Register(D32, CX)
|
|
||||||
private val argRegs = List(DI, SI, DX, CX, R8, R9)
|
private val argRegs = List(DI, SI, DX, CX, R8, R9)
|
||||||
|
|
||||||
private val _7_BIT_MASK = 0x7f
|
private val _7_BIT_MASK = 0x7f
|
||||||
|
|||||||
@@ -213,4 +213,19 @@ object assemblyIR {
|
|||||||
case String => "%s"
|
case String => "%s"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object commonRegisters {
|
||||||
|
import Size._
|
||||||
|
import RegName._
|
||||||
|
|
||||||
|
val RAX = Register(Q64, AX)
|
||||||
|
val EAX = Register(D32, AX)
|
||||||
|
val RDI = Register(Q64, DI)
|
||||||
|
val RIP = Register(Q64, IP)
|
||||||
|
val RBP = Register(Q64, BP)
|
||||||
|
val RSI = Register(Q64, SI)
|
||||||
|
val RDX = Register(Q64, DX)
|
||||||
|
val RCX = Register(Q64, CX)
|
||||||
|
val ECX = Register(D32, CX)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user