File tree Expand file tree Collapse file tree 3 files changed +18
-2
lines changed Expand file tree Collapse file tree 3 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -2832,12 +2832,12 @@ if (NOT APPLE OR NOT AARCH64 AND NOT MUSL)
2832
2832
tobuild_ci(client.file_io client-interface /file_io.c
2833
2833
"${CMAKE_CURRENT_SOURCE_DIR} /client-interface/file_io_data.txt" "" "" )
2834
2834
endif ()
2835
- if (X86 OR AARCH64) # FIXME i#1551: port asm to ARM
2835
+ if (X86 OR AARCH64 OR RISCV64 ) # FIXME i#1551: port asm to ARM
2836
2836
if (DEBUG) # FIXME i#1806: fails in release; also in OSX list below.
2837
2837
# we add custom option to flush test based on dr ops in torun_ci()
2838
2838
tobuild_ci(client.flush client-interface /flush.c "" "" "" )
2839
2839
endif ()
2840
- endif (X86 OR AARCH64)
2840
+ endif (X86 OR AARCH64 OR RISCV64 )
2841
2841
if (X86 OR AARCH64) # FIXME i#1551: port asm to ARM
2842
2842
tobuild_ci(client.strace client-interface /strace.c "" "" "" )
2843
2843
use_DynamoRIO_extension(client.strace.dll drmgr)
@@ -6674,6 +6674,7 @@ if (RISCV64)
6674
6674
code_api|client.crashmsg
6675
6675
code_api|client.drwrap-test -callconv
6676
6676
code_api|client.execfault
6677
+ code_api|client.flush
6677
6678
code_api|client.mangle_suspend
6678
6679
code_api|client.null_instrument
6679
6680
code_api|client.option_parse
Original file line number Diff line number Diff line change @@ -83,6 +83,13 @@ GLOBAL_LABEL(marker:)
83
83
yield
84
84
yield
85
85
ret
86
+ #elif defined (RISCV64 )
87
+ nop
88
+ .option arch , + c
89
+ c .nop
90
+ c .nop
91
+ .option arch , - c
92
+ ret
86
93
#endif
87
94
END_FUNC (marker )
88
95
END_FILE
Original file line number Diff line number Diff line change @@ -263,6 +263,14 @@ check_for_marker(instr_t *first_inst)
263
263
if (third != NULL && instr_get_opcode (third ) == OP_yield )
264
264
return true;
265
265
}
266
+ #elif defined(RISCV64 )
267
+ /* For RISCV64 look for an uncompressed nop followed by two compressed
268
+ * ones */
269
+ if (instr_get_opcode (second ) == OP_c_nop ) {
270
+ instr_t * third = instr_get_next (second );
271
+ if (third != NULL && instr_get_opcode (third ) == OP_c_nop )
272
+ return true;
273
+ }
266
274
#endif
267
275
}
268
276
}
You can’t perform that action at this time.
0 commit comments