Add test case for AL/AX extending problem

master
Zhang Boyang 2017-09-10 17:02:48 +08:00
parent 978d1ecce0
commit f406f63a38
3 changed files with 53 additions and 0 deletions

View 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;
}

View File

@ -0,0 +1,9 @@
0000ABCE 0000ABCE
FFFFABCE FFFFABCE
000000CE 000000CE
FFFFFFCE FFFFFFCE
0000ABCE 0000ABCE
FFFFABCE FFFFABCE
000000CE 000000CE
FFFFFFCE FFFFFFCE

View File

@ -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