\r
\r
MACRO\r
- MmioWrite32Macro $Address, $Data\r
- ldr r1, = ($Address)\r
- ldr r0, = ($Data)\r
- str r0, [r1]\r
- MEND\r
-\r
- MACRO\r
- MmioOr32Macro $Address, $OrData\r
- ldr r1, =($Address)\r
- ldr r2, =($OrData)\r
- ldr r0, [r1]\r
- orr r0, r0, r2\r
- str r0, [r1]\r
- MEND\r
-\r
- MACRO\r
- MmioAnd32Macro $Address, $AndData\r
- ldr r1, =($Address)\r
- ldr r2, =($AndData)\r
- ldr r0, [r1]\r
- and r0, r0, r2\r
- str r0, [r1]\r
- MEND\r
-\r
- MACRO\r
- MmioAndThenOr32Macro $Address, $AndData, $OrData\r
- ldr r1, =($Address)\r
- ldr r0, [r1]\r
- ldr r2, =($AndData)\r
- and r0, r0, r2\r
- ldr r2, =($OrData)\r
- orr r0, r0, r2\r
- str r0, [r1]\r
- MEND\r
-\r
- MACRO\r
- MmioWriteFromReg32Macro $Address, $Reg\r
- ldr r1, =($Address)\r
- str $Reg, [r1]\r
- MEND\r
-\r
- MACRO\r
- MmioRead32Macro $Address\r
- ldr r1, =($Address)\r
- ldr r0, [r1]\r
- MEND\r
-\r
- MACRO\r
- MmioReadToReg32Macro $Address, $Reg\r
- ldr r1, =($Address)\r
- ldr $Reg, [r1]\r
- MEND\r
-\r
- MACRO\r
- LoadConstantMacro $Data\r
- ldr r0, =($Data)\r
- MEND\r
-\r
- MACRO\r
- LoadConstantToRegMacro $Data, $Reg\r
- ldr $Reg, =($Data)\r
+ adrll $Reg, $Symbol\r
+ add $Reg, pc, #-8\r
+ RELOC R_ARM_ALU_PC_G0_NC, $Symbol\r
+ add $Reg, $Reg, #-4\r
+ RELOC R_ARM_ALU_PC_G1_NC, $Symbol\r
+ add $Reg, $Reg, #0\r
+ RELOC R_ARM_ALU_PC_G2, $Symbol\r
+ MEND\r
+\r
+ MACRO\r
+ ldrl $Reg, $Symbol\r
+ add $Reg, pc, #-8\r
+ RELOC R_ARM_ALU_PC_G0_NC, $Symbol\r
+ add $Reg, $Reg, #-4\r
+ RELOC R_ARM_ALU_PC_G1_NC, $Symbol\r
+ ldr $Reg, [$Reg, #0]\r
+ RELOC R_ARM_LDR_PC_G2, $Symbol\r
MEND\r
\r
END\r