summaryrefslogtreecommitdiffstats
path: root/src/VBox/Runtime/testcase/tstRTLdrMachORelocs-1.S
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 03:01:46 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 03:01:46 +0000
commitf8fe689a81f906d1b91bb3220acde2a4ecb14c5b (patch)
tree26484e9d7e2c67806c2d1760196ff01aaa858e8c /src/VBox/Runtime/testcase/tstRTLdrMachORelocs-1.S
parentInitial commit. (diff)
downloadvirtualbox-upstream.tar.xz
virtualbox-upstream.zip
Adding upstream version 6.0.4-dfsg.upstream/6.0.4-dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Runtime/testcase/tstRTLdrMachORelocs-1.S')
-rw-r--r--src/VBox/Runtime/testcase/tstRTLdrMachORelocs-1.S125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/VBox/Runtime/testcase/tstRTLdrMachORelocs-1.S b/src/VBox/Runtime/testcase/tstRTLdrMachORelocs-1.S
new file mode 100644
index 00000000..385c4c05
--- /dev/null
+++ b/src/VBox/Runtime/testcase/tstRTLdrMachORelocs-1.S
@@ -0,0 +1,125 @@
+/*
+ * as -arch x86_64 -mmacosx-version-min=10.7-o tstRTLdrMachORelocs-1-as.o tstRTLdrMachORelocs-1.S
+ * ld -arch x86_64 -r -o tstRTLdrMachORelocs-1.o tstRTLdrMachORelocs-1-as.o
+ * tstLdr-3 0x2000 tstRTLdrMachORelocs-1.o 0x2000 > tmp.disas
+ * diff tmp.disas tstRTLdrMachORelocs-1.disas
+ */
+ .section __TEXT,__text,regular,pure_instructions
+ .globl _myfunc6
+ .align 4, 0x90
+_myfunc6:
+Leh_func_begin6:
+ .byte 0x90
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad Lg_LocalData
+ movb Lg_LocalData(%rip), %al
+ cmpb $0x7f, Lg_LocalData(%rip)
+ cmpw $0x117f, Lg_LocalData(%rip)
+ cmpl $0x9988117f, Lg_LocalData(%rip)
+ jmp Lg_LocalData
+
+ .byte 0x90
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad Leh_func_end6
+ movb Leh_func_end6(%rip), %al
+ cmpb $0x7e, Leh_func_end6(%rip)
+ cmpw $0x117e, Leh_func_end6(%rip)
+ cmpl $0x9988117e, Leh_func_end6(%rip)
+ jmp Leh_func_end6
+
+ .byte 0x90
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad _g_Data.3-3
+ movb _g_Data.3-3(%rip), %al
+ cmpb $4, _g_Data.3-3(%rip)
+ jmp _g_Data.3-3
+
+ .byte 0x90
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad _g_Data.3
+ movb _g_Data.3(%rip), %al
+ cmpb $5, _g_Data.3(%rip)
+ cmpw $1105, _g_Data.3(%rip)
+ cmpl $99881105, _g_Data.3(%rip)
+ jmp _g_Data.3
+
+ .byte 0x90
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad abssym
+ movb abssym(%rip), %al
+ cmpb $6, abssym(%rip)
+ cmpw $1106, abssym(%rip)
+ cmpl $99881106, abssym(%rip)
+ jmp abssym
+
+ .byte 0x90
+ cmpb $1, _g_Data.4.1(%rip)
+ cmpb $2, _g_Data.4.2(%rip)
+ cmpb $3, _g_Data.4.3(%rip)
+
+ /* X86_64_RELOC_SUBTRACTOR */
+ .byte 0x90
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad Leh_func_end6 - _g_Data.0
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad Leh_func_end6 - _g_Data.0 + 0x80 /* buggy assembler here? (clang-900.0.39.2) */
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad _myfunc6_end - _g_Data.0
+ .byte 0x48, 0xb8 /* movabsq */
+ .quad _myfunc6_end - _g_Data.0 + 0x80
+ .align 4, 0xcc
+_myfunc6_end:
+
+ .section __TEXT,__othertext,regular,pure_instructions
+ .align 3, 0xcc
+Leh_func_end6:
+ .byte 0x90
+ .byte 0x90
+ .byte 0xcc
+ .byte 0xcc
+ .byte 0x90
+ .byte 0x90
+ .byte 0xcc
+ .byte 0xcc
+
+ .section __DATA,__data //,regular,pure_instructions
+ .align 3, 0xcc
+_g_Data.0:
+ .byte 0x90
+_g_Data.1:
+ .byte 0xcc
+_g_Data.2:
+ .byte 0x90
+_g_Data.3:
+ .byte 0xcc
+_g_Data.4.0:
+ .byte 0x90
+_g_Data.4.1:
+ .byte 0xcc
+_g_Data.4.2:
+ .byte 0x90
+_g_Data.4.3:
+ .byte 0xcc
+_g_EndOfData:
+
+ .section __GROG,__foobar,regular,pure_instructions
+ .align 3, 0xcc
+ .byte 0x90
+Lg_LocalDataMinus3:
+ .byte 0x90
+Lg_LocalDataMinus2:
+ .byte 0x90
+Lg_LocalDataMinus1:
+ .byte 0x90
+Lg_LocalData:
+ .byte 0xcc
+ .byte 0xcc
+ .byte 0xcc
+ .byte 0xcc
+ .byte 0xcc
+ .byte 0xcc
+
+.set abssym, 0x123456
+.globl abssym
+
+.subsections_via_symbols