소스 검색

use hard-coded sh4a atomic opcodes to avoid linker errors on sh

when using the sh4a opcodes, the assembler tags the resulting object
file as requiring sh4a. the linker then refuses to (static) link it
with object files marked as requiring j2, since there is no isa level
that includes both sh4a and j2 instructions.
Rich Felker 7 년 전
부모
커밋
bc313e880c
1개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. 4 4
      src/thread/sh/atomics.s

+ 4 - 4
src/thread/sh/atomics.s

@@ -28,15 +28,15 @@ __sh_cas_gusa:
 .hidden __sh_cas_llsc
 __sh_cas_llsc:
 	mov r0,r1
-	synco
-0:	movli.l @r1,r0
+	.word 0x00ab /* synco */
+0:	.word 0x0163 /* movli.l @r1,r0 */
 	cmp/eq r0,r2
 	bf 1f
 	mov r3,r0
-	movco.l r0,@r1
+	.word 0x0173 /* movco.l r0,@r1 */
 	bf 0b
 	mov r2,r0
-1:	synco
+1:	.word 0x00ab /* synco */
 	mov r0,r3
 	rts
 	 mov r1,r0