userland x86_64: allow ASSERT_EQ to take just about anything

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-05-09 00:00:00 +00:00
parent 53ef7281a4
commit 5e55547ce1
4 changed files with 27 additions and 11 deletions

View File

@@ -3,9 +3,11 @@
#ifndef COMMON_ARCH_H
#define COMMON_ARCH_H
#define ASSERT_EQ(reg, const) \
mov reg, %rdi; \
mov const, %rsi; \
#define ASSERT_EQ(general1, general2) \
mov general2, %rdi; \
push %rdi; \
mov general1, %rdi; \
pop %rsi; \
ASSERT_EQ_DO(64); \
;

View File

@@ -3,7 +3,14 @@
#include "common.h"
ENTRY
mov $1, %rax
ASSERT_EQ(%rax, $1)
ASSERT_EQ(%rax, $2)
mov $0x123456789ABCDEF0, %r12
mov $0x123456789ABCDEF0, %r13
ASSERT_EQ(%r12, $0x123456789ABCDEF0)
ASSERT_EQ(%r12, %r13)
ASSERT_EQ(%r12, myvar)
ASSERT_EQ($0x123456789ABCDEF0, %r12)
ASSERT_EQ(%r13, %r12)
ASSERT_EQ(myvar, %r12)
ASSERT_EQ(%r12, $0x123456789ABCDEF1)
EXIT
myvar: .quad 0x123456789ABCDEF0

View File

@@ -2,11 +2,10 @@
#include "common.h"
.data
var0: .long 0x11111111, 0x22222222, 0x33333333, 0x44444444
var1: .long 0x11111111, 0x22222222, 0x33333333, 0x44444444
var2: .long 0x11111111, 0x22222223, 0x23333333, 0x44444444
ENTRY
ASSERT_MEMCMP(var0, var1, $0x10)
ASSERT_MEMCMP(var0, var2, $0x10)
EXIT
var0: .long 0x11111111, 0x22222222, 0x33333333, 0x44444444
var1: .long 0x11111111, 0x22222222, 0x33333333, 0x44444444
var2: .long 0x11111111, 0x22222223, 0x23333333, 0x44444444