@@ -48,6 +48,9 @@ class PathProperties:
48
48
# We should get rid of this if we ever properly implement dependency graphs.
49
49
'extra_objs_lkmc_common' : False ,
50
50
'gem5_unimplemented_instruction' : False ,
51
+ 'qemu_unimplemented_instruction' : False ,
52
+ # For some reason QEMU fails with SIGSEGV on int syscalls in x86_64.
53
+ 'qemu_x86_64_int_syscall' : False ,
51
54
'interactive' : False ,
52
55
# The script takes a perceptible amount of time to run. Possibly an infinite loop.
53
56
'more_than_1s' : False ,
@@ -168,6 +171,7 @@ def should_be_tested(self, env):
168
171
not self ['requires_kernel_modules' ] and
169
172
not self ['requires_sudo' ] and
170
173
not self ['skip_run_unclassified' ] and
174
+ not self ['qemu_x86_64_int_syscall' ] and
171
175
not (
172
176
env ['emulator' ] == 'gem5' and
173
177
(
@@ -182,7 +186,10 @@ def should_be_tested(self, env):
182
186
not (
183
187
env ['emulator' ] == 'qemu' and
184
188
(
185
- self ['requires_m5ops' ]
189
+ self ['requires_m5ops' ] or
190
+ env ['mode' ] == 'baremetal' and (
191
+ self ['qemu_unimplemented_instruction' ]
192
+ )
186
193
)
187
194
)
188
195
)
@@ -394,29 +401,55 @@ def get(path):
394
401
},
395
402
}
396
403
),
397
- 'lkmc_assert_fail.S' : {
398
- 'signal_received' : signal .Signals .SIGABRT ,
399
- },
400
404
'x86_64' : (
401
405
{'allowed_archs' : {'x86_64' }},
402
406
{
403
- 'inline_asm' : (
407
+ 'freestanding' : (
408
+ freestanding_properties ,
404
409
{
405
- },
410
+ 'linux' : (
411
+ {},
412
+ {
413
+ 'int_system_call.S' : {'qemu_x86_64_int_syscall' : True },
414
+ }
415
+ ),
416
+ }
417
+ ),
418
+ 'inline_asm' : (
419
+ {},
406
420
{
407
421
'freestanding' : freestanding_properties ,
408
422
}
409
423
),
424
+ 'intrinsics' : (
425
+ {},
426
+ {
427
+ 'rdtscp.c' : {
428
+ 'gem5_unimplemented_instruction' : True ,
429
+ 'qemu_unimplemented_instruction' : True ,
430
+ },
431
+ }
432
+ ),
410
433
'div_overflow.S' : {'signal_received' : signal .Signals .SIGFPE },
411
434
'div_zero.S' : {'signal_received' : signal .Signals .SIGFPE },
412
- 'freestanding' : freestanding_properties ,
413
435
'lkmc_assert_eq_fail.S' : {'signal_received' : signal .Signals .SIGABRT },
414
436
'lkmc_assert_memcmp_fail.S' : {'signal_received' : signal .Signals .SIGABRT },
415
- 'ring0.c' : {
416
- 'signal_received' : signal .Signals .SIGSEGV ,
417
- }
437
+ 'popcnt.S' : {'qemu_unimplemented_instruction' : True },
438
+ 'rdrand.S' : {
439
+ 'gem5_unimplemented_instruction' : True ,
440
+ 'qemu_unimplemented_instruction' : True ,
441
+ },
442
+ 'rdtscp.S' : {'qemu_unimplemented_instruction' : True },
443
+ 'ring0.c' : {'signal_received' : signal .Signals .SIGSEGV },
444
+ 'vfmadd132pd.S' : {
445
+ 'gem5_unimplemented_instruction' : True ,
446
+ 'qemu_unimplemented_instruction' : True ,
447
+ },
418
448
}
419
449
),
450
+ 'lkmc_assert_fail.S' : {
451
+ 'signal_received' : signal .Signals .SIGABRT ,
452
+ },
420
453
}
421
454
),
422
455
'c' : (
0 commit comments