package Ġven us . assembler . p seud os Ċ Ċ import Ġven us . assembler . Assembler Pass One Ċ import Ġven us . assembler . Line Tokens Ċ import Ġven us . assembler . Pseudo Writer Ċ import Ġven us . ris cv . inst s . dsl . re loc ators . PC Rel Hi Re locator Ċ import Ġven us . ris cv . inst s . dsl . re loc ators . PC Rel Lo Re locator Ċ Ċ /** Ċ Ġ* ĠWrites Ġp seud oin struction Ġ` la Ġreg , Ġlabel `. Ċ Ġ* Ċ Ġ* ĠUses Ġa Ġ` au ipc ` Ġ/ Ġ` addi ` Ġpair Ġand Ġadds Ġthem Ġto Ġthe Ġre location Ġtable Ċ Ġ*/ Ċ object ĠLA Ġ: ĠP seudo Writer () Ġ{ ĊĠĠĠ Ġoverride Ġoperator Ġfun Ġinvoke ( args : ĠLine Tokens , Ġstate : ĠAs sembler Pass One ): ĠList < Line Tokens > Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Args Length ( args , Ġ 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġau ipc Ġ= ĠlistOf (" au ipc ", Ġargs [ 1 ], Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġstate . add Re location ( PC Rel Hi Re locator , Ġstate . get Offset (), Ġargs [ 2 ]) ĊĊĠĠĠĠĠĠĠ Ġval Ġadd i Ġ= ĠlistOf (" addi ", Ġargs [ 1 ], Ġargs [ 1 ], Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġstate . add Re location ( PC Rel Lo Re locator , Ġstate . get Offset () Ġ+ Ġ 4 , Ġargs [ 2 ]) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( au ipc , Ġadd i ) ĊĠĠĠ Ġ} Ċ } Ċ