mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-03 16:41:06 +03:00
59 lines
1.4 KiB
D
59 lines
1.4 KiB
D
// REQUIRES: target_X86
|
|
|
|
// RUN: %ldc -mtriple=x86_64-linux-gnu -output-s -of=%t.s %s
|
|
// RUN: FileCheck %s < %t.s
|
|
|
|
// CHECK: _D19asm_data_directives14_rdrand32_stepFPkZi:
|
|
int _rdrand32_step(uint* r)
|
|
{
|
|
int ret;
|
|
asm
|
|
{
|
|
// CHECK: movl -12(%rbp), %eax
|
|
mov EAX, ret;
|
|
// CHECK-NEXT: .byte 15
|
|
// CHECK-NEXT: .byte 199
|
|
// CHECK-NEXT: .byte 240
|
|
db 0x0F, 0xC7, 0xF0; // rdrand EAX
|
|
// CHECK-NEXT: movl %eax, -12(%rbp)
|
|
mov ret, EAX;
|
|
}
|
|
if (ret != 0)
|
|
{
|
|
*r = ret;
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
// CHECK: _D19asm_data_directives3fooFZv:
|
|
void foo()
|
|
{
|
|
asm
|
|
{
|
|
// CHECK: .byte 1
|
|
// CHECK-NEXT: .byte 128
|
|
db 1, 0x80;
|
|
// CHECK-NEXT: .short 2
|
|
// CHECK-NEXT: .short 256
|
|
ds 2, 0x100;
|
|
// CHECK-NEXT: .long 3
|
|
// CHECK-NEXT: .long 65536
|
|
di 3, 0x10000;
|
|
// CHECK-NEXT: .quad 4
|
|
// CHECK-NEXT: .quad 4294967296
|
|
dl 4, 0x100000000;
|
|
|
|
// CHECK-NEXT: .long 1065353216
|
|
// CHECK-NEXT: .long 1069547520
|
|
df 1.0f, 1.5f;
|
|
// CHECK-NEXT: .quad 4607182418800017408
|
|
// CHECK-NEXT: .quad 4609434218613702656
|
|
dd 1.0, 1.5;
|
|
// CHECK-NEXT: .quad -9223372036854775808
|
|
// CHECK-NEXT: .short 16383
|
|
// CHECK-NEXT: .quad -4611686018427387904
|
|
// CHECK-NEXT: .short 16383
|
|
de 1.0L, 1.5L;
|
|
}
|
|
}
|