summaryrefslogtreecommitdiff
path: root/CONTRIBUTORS
diff options
context:
space:
mode:
authorDave Cheney <dave@cheney.net>2014-10-22 12:30:15 +1100
committerDave Cheney <dave@cheney.net>2014-10-22 12:30:15 +1100
commit251f0c6682d7f826ac52ba478b2dc96487810e6d (patch)
treea7f91bc8962790056b20aa9bde6703e29664eefd /CONTRIBUTORS
parentc6c9b7550977d0d31d16ffb61f9e4b5854c0d14a (diff)
downloadgo-251f0c6682d7f826ac52ba478b2dc96487810e6d.tar.gz
runtime/cgo: encode BLX directly, fixes one clang build error on arm
Fixes issue 8348. Trying to work around clang's dodgy support for .arch by reverting to the external assembler didn't work out so well. Minux had a much better solution to encode the instructions we need as .word directives which avoids .arch altogether. I've confirmed with gdb that this form produces the expected machine code Dump of assembler code for function crosscall_arm1: 0x00000000 <+0>: push {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} 0x00000004 <+4>: mov r4, r0 0x00000008 <+8>: mov r5, r1 0x0000000c <+12>: mov r0, r2 0x00000010 <+16>: blx r5 0x00000014 <+20>: blx r4 0x00000018 <+24>: pop {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} There is another compilation failure that blocks building Go with clang on arm # ../misc/cgo/test # _/home/dfc/go/misc/cgo/test /tmp/--407b12.s: Assembler messages: /tmp/--407b12.s:59: Error: selected processor does not support ARM mode `blx r0' clang: error: assembler command failed with exit code 1 (use -v to see invocation) FAIL _/home/dfc/go/misc/cgo/test [build failed] I'll open a new issue for that LGTM=iant R=iant, minux CC=golang-codereviews https://codereview.appspot.com/158180047
Diffstat (limited to 'CONTRIBUTORS')
0 files changed, 0 insertions, 0 deletions