authorgravatar for joachim.schmidt557@outlook.comJoachim Schmidt <joachim.schmidt557@outlook.com> 2020-11-28 19:02:07+01:00
committergravatar for joachim.schmidt557@outlook.comJoachim Schmidt <joachim.schmidt557@outlook.com> 2020-11-28 23:26:17+01:00
logceebcb2b4dec91d3c57e9c44a10f51a5a4e14899
tree47043568361c53c92f1ac1f8e25b8927897dccf6
parent2ad263658872a7b8b7bf3275c35d0e4c4faebccd
signature Commit is signed but in an unrecognized format.

stage2 ARM: add test case for addition


1 files changed, 36 insertions(+), 0 deletions(-)

test/stage2/arm.zig+36
......@@ -113,4 +113,40 @@ pub fn addCases(ctx: *TestContext) !void {
113113 "",
114114 );
115115 }
116
117 {
118 var case = ctx.exe("addition", linux_arm);
119 // Add two numbers
120 case.addCompareOutput(
121 \\export fn _start() noreturn {
122 \\ print(2, 4);
123 \\ print(1, 7);
124 \\ exit();
125 \\}
126 \\
127 \\fn print(a: u32, b: u32) void {
128 \\ asm volatile ("svc #0"
129 \\ :
130 \\ : [number] "{r7}" (4),
131 \\ [arg3] "{r2}" (a + b),
132 \\ [arg1] "{r0}" (1),
133 \\ [arg2] "{r1}" (@ptrToInt("123456789"))
134 \\ : "memory"
135 \\ );
136 \\ return;
137 \\}
138 \\
139 \\fn exit() noreturn {
140 \\ asm volatile ("svc #0"
141 \\ :
142 \\ : [number] "{r7}" (1),
143 \\ [arg1] "{r0}" (0)
144 \\ : "memory"
145 \\ );
146 \\ unreachable;
147 \\}
148 ,
149 "12345612345678",
150 );
151 }
116152}