summaryrefslogtreecommitdiffstats
path: root/asm-tests/i386-pc.S
diff options
context:
space:
mode:
Diffstat (limited to 'asm-tests/i386-pc.S')
-rw-r--r--asm-tests/i386-pc.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/asm-tests/i386-pc.S b/asm-tests/i386-pc.S
new file mode 100644
index 0000000..d037744
--- /dev/null
+++ b/asm-tests/i386-pc.S
@@ -0,0 +1,18 @@
+/* on x86 old clang doesn't support .code16
+ newer clang supports it but creates 6-byte jumps instead of 3-byte ones
+ which makes us go over boot sector size.
+ Starting with 3.9 clang emits 3-byte jumps but still creates 8-bytes movl
+ instead of 5-bytes, so code overflows into data. */
+
+ .code16
+ jmp far
+ .org 4
+ jmp nearer
+ .org 6
+ movl nearer, %ebx
+ .org 11
+ .space 100
+nearer:
+ .space 200
+far:
+ .byte 0