#error "Unexpected __SIZEOF_SHORT__"
#endif
- li t0, XIP_OFFSET_MASK
- and t1, t1, t0
- li t1, XIP_OFFSET
- sub t0, t0, t1
- sub \reg, \reg, t0
+ #ifdef __ASSEMBLY__
+
+ /* Common assembly source macros */
+
+ #ifdef CONFIG_XIP_KERNEL
+ .macro XIP_FIXUP_OFFSET reg
+ REG_L t0, _xip_fixup
+ add \reg, \reg, t0
+ .endm
+ .macro XIP_FIXUP_FLASH_OFFSET reg
+ la t1, __data_loc
++ REG_L t1, _xip_phys_offset
++ sub \reg, \reg, t1
++ add \reg, \reg, t0
+ .endm
+ _xip_fixup: .dword CONFIG_PHYS_RAM_BASE - CONFIG_XIP_PHYS_ADDR - XIP_OFFSET
++_xip_phys_offset: .dword CONFIG_XIP_PHYS_ADDR + XIP_OFFSET
+ #else
+ .macro XIP_FIXUP_OFFSET reg
+ .endm
+ .macro XIP_FIXUP_FLASH_OFFSET reg
+ .endm
+ #endif /* CONFIG_XIP_KERNEL */
+
+ #endif /* __ASSEMBLY__ */
+
#endif /* _ASM_RISCV_ASM_H */