[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-arm
Subject: [Bug 259187] Use of thumb NEON instructions in thread causes SIGILL
From: bugzilla-noreply () freebsd ! org
Date: 2021-10-15 14:57:22
Message-ID: bug-259187-7 () https ! bugs ! freebsd ! org/bugzilla/
[Download RAW message or body]
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259187
Bug ID: 259187
Summary: Use of thumb NEON instructions in thread causes SIGILL
Product: Base System
Version: 13.0-RELEASE
Hardware: arm
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: arm
Assignee: freebsd-arm@FreeBSD.org
Reporter: fuz@fuz.su
CC: cognet@FreeBSD.org
Flags: mfc-stable13?, mfc-stable12?
The following program crashes with a SIGILL on armv7 FreeBSD 13.0-RELEASE. It
does not crash in an armv7 jail on arm64 FreeBSD and does not crash when
compiled without -mthumb.
#include <pthread.h>
#include <stddef.h>
void *a(void *x) {
(void)x;
struct {
int b[4];
} c = c;
return (NULL);
}
int main() {
pthread_t d;
pthread_create(&d, NULL, a, NULL);
pthread_join(d, NULL);
}
Save the program in a file name min.c, then type
cc -mthumb min.c -lpthread && ./a.out
to reproduce. The assembly code for function a() looks as follows:
00020754 <a>:
20754: b086 sub sp, #24
20756: 9005 str r0, [sp, #20]
20758: 4668 mov r0, sp
2075a: f960 0a8f vld1.32 {d16-d17}, [r0]
2075e: f940 0acf vst1.64 {d16-d17}, [r0]
20762: 2000 movs r0, #0
20764: b006 add sp, #24
20766: 4770 bx lr
The program crashes at address 2075a at the vld1.32 instruction.
When compiled for ARM mode, the same instruction is used but no crash occurs.
I do not understand what causes this issue.
It also does not seem to happen when executing the function a() without using a
separate thread.
I've used a Raspberry Pi 3B (Cortex-A7) to find this issue.
--
You are receiving this mail because:
You are the assignee for the bug.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic