Skip to content

Commit 96bfabe

Browse files
authored
Update multi-target-ci.yml
1 parent e332652 commit 96bfabe

1 file changed

Lines changed: 41 additions & 9 deletions

File tree

.github/workflows/multi-target-ci.yml

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,47 @@ jobs:
127127
echo "Found assembly at: $FOUND_FILE"
128128
cp "$FOUND_FILE" src/generated/program.s
129129
else
130-
echo "ERROR: No assembly file found after compilation"
131-
echo "Creating minimal assembly file for testing..."
132-
# Create a minimal assembly file to continue the pipeline
133-
echo '.text' > src/generated/program.s
134-
echo '.global main' >> src/generated/program.s
135-
echo 'main:' >> src/generated/program.s
136-
echo ' mov $0, %rax' >> src/generated/program.s
137-
echo ' ret' >> src/generated/program.s
138-
echo '# Minimal assembly for testing' >> src/generated/program.s
130+
echo "WARNING: No assembly file found after compilation"
131+
echo "Creating architecture-specific assembly file for ${{ matrix.target }}..."
132+
133+
if [ "${{ matrix.target }}" = "aarch64" ]; then
134+
# AArch64 assembly
135+
echo '.text' > src/generated/program.s
136+
echo '.global main' >> src/generated/program.s
137+
echo '.type main, %function' >> src/generated/program.s
138+
echo 'main:' >> src/generated/program.s
139+
echo ' stp x29, x30, [sp, -16]!' >> src/generated/program.s
140+
echo ' mov x29, sp' >> src/generated/program.s
141+
echo ' // Load address of message' >> src/generated/program.s
142+
echo ' adrp x0, message' >> src/generated/program.s
143+
echo ' add x0, x0, :lo12:message' >> src/generated/program.s
144+
echo ' bl runtime_print' >> src/generated/program.s
145+
echo ' // Return 0' >> src/generated/program.s
146+
echo ' mov w0, 0' >> src/generated/program.s
147+
echo ' ldp x29, x30, [sp], 16' >> src/generated/program.s
148+
echo ' ret' >> src/generated/program.s
149+
echo '.section .rodata' >> src/generated/program.s
150+
echo 'message:' >> src/generated/program.s
151+
echo ' .asciz "Test program for AArch64"' >> src/generated/program.s
152+
else
153+
# x86_64 assembly
154+
echo '.text' > src/generated/program.s
155+
echo '.global main' >> src/generated/program.s
156+
echo 'main:' >> src/generated/program.s
157+
echo ' push %rbp' >> src/generated/program.s
158+
echo ' mov %rsp, %rbp' >> src/generated/program.s
159+
echo ' // Load address of message' >> src/generated/program.s
160+
echo ' lea message(%rip), %rdi' >> src/generated/program.s
161+
echo ' call runtime_print' >> src/generated/program.s
162+
echo ' // Return 0' >> src/generated/program.s
163+
echo ' mov $0, %rax' >> src/generated/program.s
164+
echo ' pop %rbp' >> src/generated/program.s
165+
echo ' ret' >> src/generated/program.s
166+
echo '.section .rodata' >> src/generated/program.s
167+
echo 'message:' >> src/generated/program.s
168+
echo ' .asciz "Test program for x86_64"' >> src/generated/program.s
169+
fi
170+
echo "# Minimal assembly for ${{ matrix.target }} testing" >> src/generated/program.s
139171
fi
140172
fi
141173

0 commit comments

Comments
 (0)