summaryrefslogtreecommitdiff
path: root/armmacros.s
blob: 609d4b59333e8ae7ad2eec763d3c3ec3266a3ed7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.ifdef PIC

.macro lao r a i
	ldr	\r,\a\()__o\i
.endm

.macro otoa r a i
\a\()__u\i:
	add	\r,\r,pc
.endm

.macro ldo rd ra a i
\a\()__u\i:
	ldr	\rd,[pc,\ra]	
.endm

.macro ldosb rd ra a i
\a\()__u\i:
	ldrsb	\rd,[pc,\ra]	
.endm

.macro sto rd ra a i
\a\()__u\i:
	str	\rd,[pc,\ra]	
.endm

.macro stob rd ra a i
\a\()__u\i:
	strb	\rd,[pc,\ra]	
.endm

.macro lto a i
\a\()__o\i:
	.long	\a\()-(\a\()__u\i\()+8)
.endm

.macro laol r a l i
	ldr	\r,\l\()__o\i
.endm

.macro ltol a l i
\l\()__o\i:
	.long	\a\()-(\l\()__u\i\()+8)
.endm

.else

.macro lao r a i
	ldr	\r,=\a
.endm

.macro otoa r a i
.endm

.macro ldo rd ra a i
	ldr	\rd,[\ra]	
.endm

.macro ldosb rd ra a i
	ldrsb	\rd,[\ra]	
.endm

.macro sto rd ra a i
	str	\rd,[\ra]	
.endm

.macro stob rd ra a i
	strb	\rd,[\ra]	
.endm

.macro laol r a l i
	ldr	\r,=\a
.endm

.endif