mirror of
https://github.com/mirror/tinycc.git
synced 2025-02-04 06:30:10 +08:00
Add test case for AL/AX extending problem
This commit is contained in:
parent
978d1ecce0
commit
f406f63a38
41
tests/tests2/98_al_ax_extend.c
Normal file
41
tests/tests2/98_al_ax_extend.c
Normal file
@ -0,0 +1,41 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
asm (
|
||||
".text;"
|
||||
".globl _us;.globl _ss;.globl _uc;.globl _sc;"
|
||||
"_us:;_ss:;_uc:;_sc:;"
|
||||
"movl $0x1234ABCD, %eax;"
|
||||
"ret;"
|
||||
);
|
||||
|
||||
#if 1
|
||||
#define us _us
|
||||
#define ss _ss
|
||||
#define uc _uc
|
||||
#define sc _sc
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
unsigned short us(void);
|
||||
short ss(void);
|
||||
unsigned char uc(void);
|
||||
signed char sc(void);
|
||||
|
||||
unsigned short (*fpus)(void) = us;
|
||||
short (*fpss)(void) = ss;
|
||||
unsigned char (*fpuc)(void) = uc;
|
||||
signed char (*fpsc)(void) = sc;
|
||||
|
||||
printf("%08X %08X\n", us() + 1, fpus() + 1);
|
||||
printf("%08X %08X\n", ss() + 1, fpss() + 1);
|
||||
printf("%08X %08X\n", uc() + 1, fpuc() + 1);
|
||||
printf("%08X %08X\n", sc() + 1, fpsc() + 1);
|
||||
printf("\n");
|
||||
printf("%08X %08X\n", fpus() + 1, us() + 1);
|
||||
printf("%08X %08X\n", fpss() + 1, ss() + 1);
|
||||
printf("%08X %08X\n", fpuc() + 1, uc() + 1);
|
||||
printf("%08X %08X\n", fpsc() + 1, sc() + 1);
|
||||
|
||||
return 0;
|
||||
}
|
9
tests/tests2/98_al_ax_extend.expect
Normal file
9
tests/tests2/98_al_ax_extend.expect
Normal file
@ -0,0 +1,9 @@
|
||||
0000ABCE 0000ABCE
|
||||
FFFFABCE FFFFABCE
|
||||
000000CE 000000CE
|
||||
FFFFFFCE FFFFFFCE
|
||||
|
||||
0000ABCE 0000ABCE
|
||||
FFFFABCE FFFFABCE
|
||||
000000CE 000000CE
|
||||
FFFFFFCE FFFFFFCE
|
@ -17,6 +17,9 @@ endif
|
||||
ifeq ($(ARCH),x86_64)
|
||||
SKIP += 73_arm64.test
|
||||
endif
|
||||
ifeq (,$(filter i386,$(ARCH)))
|
||||
SKIP += 98_al_ax_extend.test
|
||||
endif
|
||||
ifeq (,$(filter i386 x86_64,$(ARCH)))
|
||||
SKIP += 85_asm-outside-function.test
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user