refactor: removes magic numbers in asmgenerator
This commit is contained in:
@@ -25,6 +25,8 @@ object asmGenerator {
|
||||
private val ECX = Register(D32, CX)
|
||||
private val argRegs = List(DI, SI, DX, CX, R8, R9)
|
||||
|
||||
private val _7_BIT_MASK = 0x7f
|
||||
|
||||
extension [T](chain: Chain[T])
|
||||
def +(item: T): Chain[T] = chain.append(item)
|
||||
|
||||
@@ -326,7 +328,7 @@ object asmGenerator {
|
||||
op match {
|
||||
case UnaryOperator.Chr =>
|
||||
chain += Move(EAX, stack.head)
|
||||
chain += And(EAX, ImmediateVal(-128))
|
||||
chain += And(EAX, ImmediateVal(~_7_BIT_MASK))
|
||||
chain += Compare(EAX, ImmediateVal(0))
|
||||
chain += Jump(LabelArg(BadChrError.errLabel), Cond.NotEqual)
|
||||
case UnaryOperator.Ord => // No op needed
|
||||
|
||||
Reference in New Issue
Block a user