mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-07 11:28:46 +00:00
Merge branch 'for-upstream' of git://github.com/mwalle/qemu
* 'for-upstream' of git://github.com/mwalle/qemu: configure: rename OpenGL feature to GLX configure: proper OpenGL/GLX probe target-lm32: use HELPER() macro target-lm32: flush tlb after clearing env target-lm32: remove dead code target-lm32: fix cmpgui and cmpgeui opcodes tests: tcg: lm32: add more test cases target-lm32: don't log cpu state in translation lm32_uart: fix receive buffering milkymist-uart: fix receive buffering lm32-dis: fix NULL pointer dereference target-lm32: fix debug memory access
This commit is contained in:
commit
f7c61bf8fc
34
configure
vendored
34
configure
vendored
@ -217,7 +217,7 @@ spice=""
|
|||||||
rbd=""
|
rbd=""
|
||||||
smartcard_nss=""
|
smartcard_nss=""
|
||||||
usb_redir=""
|
usb_redir=""
|
||||||
opengl=""
|
glx=""
|
||||||
zlib="yes"
|
zlib="yes"
|
||||||
guest_agent="yes"
|
guest_agent="yes"
|
||||||
want_tools="yes"
|
want_tools="yes"
|
||||||
@ -858,9 +858,9 @@ for opt do
|
|||||||
;;
|
;;
|
||||||
--enable-vhost-net) vhost_net="yes"
|
--enable-vhost-net) vhost_net="yes"
|
||||||
;;
|
;;
|
||||||
--disable-opengl) opengl="no"
|
--disable-glx) glx="no"
|
||||||
;;
|
;;
|
||||||
--enable-opengl) opengl="yes"
|
--enable-glx) glx="yes"
|
||||||
;;
|
;;
|
||||||
--disable-rbd) rbd="no"
|
--disable-rbd) rbd="no"
|
||||||
;;
|
;;
|
||||||
@ -2436,23 +2436,23 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# opengl probe, used by milkymist-tmu2
|
# GLX probe, used by milkymist-tmu2
|
||||||
if test "$opengl" != "no" ; then
|
if test "$glx" != "no" ; then
|
||||||
opengl_libs="-lGL -lX11"
|
glx_libs="-lGL -lX11"
|
||||||
cat > $TMPC << EOF
|
cat > $TMPC << EOF
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#include <GL/glx.h>
|
#include <GL/glx.h>
|
||||||
int main(void) { return GL_VERSION != 0; }
|
int main(void) { glBegin(0); glXQueryVersion(0,0,0); return 0; }
|
||||||
EOF
|
EOF
|
||||||
if compile_prog "" "-lGL" ; then
|
if compile_prog "" "-lGL -lX11" ; then
|
||||||
opengl=yes
|
glx=yes
|
||||||
else
|
else
|
||||||
if test "$opengl" = "yes" ; then
|
if test "$glx" = "yes" ; then
|
||||||
feature_not_found "opengl"
|
feature_not_found "glx"
|
||||||
fi
|
fi
|
||||||
opengl_libs=
|
glx_libs=
|
||||||
opengl=no
|
glx=no
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -3430,7 +3430,7 @@ echo "rbd support $rbd"
|
|||||||
echo "xfsctl support $xfs"
|
echo "xfsctl support $xfs"
|
||||||
echo "nss used $smartcard_nss"
|
echo "nss used $smartcard_nss"
|
||||||
echo "usb net redir $usb_redir"
|
echo "usb net redir $usb_redir"
|
||||||
echo "OpenGL support $opengl"
|
echo "GLX support $glx"
|
||||||
echo "libiscsi support $libiscsi"
|
echo "libiscsi support $libiscsi"
|
||||||
echo "build guest agent $guest_agent"
|
echo "build guest agent $guest_agent"
|
||||||
echo "seccomp support $seccomp"
|
echo "seccomp support $seccomp"
|
||||||
@ -3741,8 +3741,8 @@ if test "$usb_redir" = "yes" ; then
|
|||||||
echo "CONFIG_USB_REDIR=y" >> $config_host_mak
|
echo "CONFIG_USB_REDIR=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$opengl" = "yes" ; then
|
if test "$glx" = "yes" ; then
|
||||||
echo "CONFIG_OPENGL=y" >> $config_host_mak
|
echo "CONFIG_GLX=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$libiscsi" = "yes" ; then
|
if test "$libiscsi" = "yes" ; then
|
||||||
@ -4020,7 +4020,7 @@ case "$target_arch2" in
|
|||||||
target_nptl="yes"
|
target_nptl="yes"
|
||||||
;;
|
;;
|
||||||
lm32)
|
lm32)
|
||||||
target_libs_softmmu="$opengl_libs"
|
target_libs_softmmu="$glx_libs"
|
||||||
;;
|
;;
|
||||||
m68k)
|
m68k)
|
||||||
bflt="yes"
|
bflt="yes"
|
||||||
|
@ -303,11 +303,11 @@ int print_insn_lm32(bfd_vma memaddr, struct disassemble_info *info)
|
|||||||
}
|
}
|
||||||
case 'c': {
|
case 'c': {
|
||||||
uint8_t csr;
|
uint8_t csr;
|
||||||
const char *csr_name;
|
const Lm32CsrInfo *info;
|
||||||
csr = (op >> 21) & 0x1f;
|
csr = (op >> 21) & 0x1f;
|
||||||
csr_name = find_csr_info(csr)->name;
|
info = find_csr_info(csr);
|
||||||
if (csr_name) {
|
if (info) {
|
||||||
fprintf_fn(stream, "%s", csr_name);
|
fprintf_fn(stream, "%s", info->name);
|
||||||
} else {
|
} else {
|
||||||
fprintf_fn(stream, "0x%x", csr);
|
fprintf_fn(stream, "0x%x", csr);
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ obj-y += milkymist-minimac2.o
|
|||||||
obj-y += milkymist-pfpu.o
|
obj-y += milkymist-pfpu.o
|
||||||
obj-y += milkymist-softusb.o
|
obj-y += milkymist-softusb.o
|
||||||
obj-y += milkymist-sysctl.o
|
obj-y += milkymist-sysctl.o
|
||||||
obj-$(CONFIG_OPENGL) += milkymist-tmu2.o
|
obj-$(CONFIG_GLX) += milkymist-tmu2.o
|
||||||
obj-y += milkymist-uart.o
|
obj-y += milkymist-uart.o
|
||||||
obj-y += milkymist-vgafb.o
|
obj-y += milkymist-vgafb.o
|
||||||
obj-y += framebuffer.o
|
obj-y += framebuffer.o
|
||||||
|
@ -137,6 +137,7 @@ static uint64_t uart_read(void *opaque, hwaddr addr,
|
|||||||
r = s->regs[R_RXTX];
|
r = s->regs[R_RXTX];
|
||||||
s->regs[R_LSR] &= ~LSR_DR;
|
s->regs[R_LSR] &= ~LSR_DR;
|
||||||
uart_update_irq(s);
|
uart_update_irq(s);
|
||||||
|
qemu_chr_accept_input(s->chr);
|
||||||
break;
|
break;
|
||||||
case R_IIR:
|
case R_IIR:
|
||||||
case R_LSR:
|
case R_LSR:
|
||||||
|
@ -87,7 +87,7 @@ static inline DeviceState *milkymist_pfpu_create(hwaddr base,
|
|||||||
return dev;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_OPENGL
|
#ifdef CONFIG_GLX
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <GL/glx.h>
|
#include <GL/glx.h>
|
||||||
static const int glx_fbconfig_attr[] = {
|
static const int glx_fbconfig_attr[] = {
|
||||||
@ -101,7 +101,7 @@ static const int glx_fbconfig_attr[] = {
|
|||||||
static inline DeviceState *milkymist_tmu2_create(hwaddr base,
|
static inline DeviceState *milkymist_tmu2_create(hwaddr base,
|
||||||
qemu_irq irq)
|
qemu_irq irq)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_OPENGL
|
#ifdef CONFIG_GLX
|
||||||
DeviceState *dev;
|
DeviceState *dev;
|
||||||
Display *d;
|
Display *d;
|
||||||
GLXFBConfig *configs;
|
GLXFBConfig *configs;
|
||||||
|
@ -132,6 +132,7 @@ static void uart_write(void *opaque, hwaddr addr, uint64_t value,
|
|||||||
case R_STAT:
|
case R_STAT:
|
||||||
/* write one to clear bits */
|
/* write one to clear bits */
|
||||||
s->regs[addr] &= ~(value & (STAT_RX_EVT | STAT_TX_EVT));
|
s->regs[addr] &= ~(value & (STAT_RX_EVT | STAT_TX_EVT));
|
||||||
|
qemu_chr_accept_input(s->chr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -36,10 +36,10 @@ static void lm32_cpu_reset(CPUState *s)
|
|||||||
|
|
||||||
lcc->parent_reset(s);
|
lcc->parent_reset(s);
|
||||||
|
|
||||||
tlb_flush(env, 1);
|
|
||||||
|
|
||||||
/* reset cpu state */
|
/* reset cpu state */
|
||||||
memset(env, 0, offsetof(CPULM32State, breakpoints));
|
memset(env, 0, offsetof(CPULM32State, breakpoints));
|
||||||
|
|
||||||
|
tlb_flush(env, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lm32_cpu_realizefn(DeviceState *dev, Error **errp)
|
static void lm32_cpu_realizefn(DeviceState *dev, Error **errp)
|
||||||
|
@ -229,18 +229,8 @@ static inline void cpu_set_tls(CPULM32State *env, target_ulong newtls)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int cpu_interrupts_enabled(CPULM32State *env)
|
|
||||||
{
|
|
||||||
return env->ie & IE_IE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "exec/cpu-all.h"
|
#include "exec/cpu-all.h"
|
||||||
|
|
||||||
static inline target_ulong cpu_get_pc(CPULM32State *env)
|
|
||||||
{
|
|
||||||
return env->pc;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPULM32State *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPULM32State *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, int *flags)
|
||||||
{
|
{
|
||||||
|
@ -39,7 +39,12 @@ int cpu_lm32_handle_mmu_fault(CPULM32State *env, target_ulong address, int rw,
|
|||||||
|
|
||||||
hwaddr cpu_get_phys_page_debug(CPULM32State *env, target_ulong addr)
|
hwaddr cpu_get_phys_page_debug(CPULM32State *env, target_ulong addr)
|
||||||
{
|
{
|
||||||
return addr & TARGET_PAGE_MASK;
|
addr &= TARGET_PAGE_MASK;
|
||||||
|
if (env->flags & LM32_FLAG_IGNORE_MSB) {
|
||||||
|
return addr & 0x7fffffff;
|
||||||
|
} else {
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void lm32_cpu_do_interrupt(CPUState *cs)
|
void lm32_cpu_do_interrupt(CPUState *cs)
|
||||||
|
@ -17,13 +17,13 @@
|
|||||||
#define SHIFT 3
|
#define SHIFT 3
|
||||||
#include "exec/softmmu_template.h"
|
#include "exec/softmmu_template.h"
|
||||||
|
|
||||||
void helper_raise_exception(CPULM32State *env, uint32_t index)
|
void HELPER(raise_exception)(CPULM32State *env, uint32_t index)
|
||||||
{
|
{
|
||||||
env->exception_index = index;
|
env->exception_index = index;
|
||||||
cpu_loop_exit(env);
|
cpu_loop_exit(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_hlt(CPULM32State *env)
|
void HELPER(hlt)(CPULM32State *env)
|
||||||
{
|
{
|
||||||
CPUState *cs = CPU(lm32_env_get_cpu(env));
|
CPUState *cs = CPU(lm32_env_get_cpu(env));
|
||||||
|
|
||||||
@ -32,42 +32,42 @@ void helper_hlt(CPULM32State *env)
|
|||||||
cpu_loop_exit(env);
|
cpu_loop_exit(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_wcsr_im(CPULM32State *env, uint32_t im)
|
void HELPER(wcsr_im)(CPULM32State *env, uint32_t im)
|
||||||
{
|
{
|
||||||
lm32_pic_set_im(env->pic_state, im);
|
lm32_pic_set_im(env->pic_state, im);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_wcsr_ip(CPULM32State *env, uint32_t im)
|
void HELPER(wcsr_ip)(CPULM32State *env, uint32_t im)
|
||||||
{
|
{
|
||||||
lm32_pic_set_ip(env->pic_state, im);
|
lm32_pic_set_ip(env->pic_state, im);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_wcsr_jtx(CPULM32State *env, uint32_t jtx)
|
void HELPER(wcsr_jtx)(CPULM32State *env, uint32_t jtx)
|
||||||
{
|
{
|
||||||
lm32_juart_set_jtx(env->juart_state, jtx);
|
lm32_juart_set_jtx(env->juart_state, jtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_wcsr_jrx(CPULM32State *env, uint32_t jrx)
|
void HELPER(wcsr_jrx)(CPULM32State *env, uint32_t jrx)
|
||||||
{
|
{
|
||||||
lm32_juart_set_jrx(env->juart_state, jrx);
|
lm32_juart_set_jrx(env->juart_state, jrx);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t helper_rcsr_im(CPULM32State *env)
|
uint32_t HELPER(rcsr_im)(CPULM32State *env)
|
||||||
{
|
{
|
||||||
return lm32_pic_get_im(env->pic_state);
|
return lm32_pic_get_im(env->pic_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t helper_rcsr_ip(CPULM32State *env)
|
uint32_t HELPER(rcsr_ip)(CPULM32State *env)
|
||||||
{
|
{
|
||||||
return lm32_pic_get_ip(env->pic_state);
|
return lm32_pic_get_ip(env->pic_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t helper_rcsr_jtx(CPULM32State *env)
|
uint32_t HELPER(rcsr_jtx)(CPULM32State *env)
|
||||||
{
|
{
|
||||||
return lm32_juart_get_jtx(env->juart_state);
|
return lm32_juart_get_jtx(env->juart_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t helper_rcsr_jrx(CPULM32State *env)
|
uint32_t HELPER(rcsr_jrx)(CPULM32State *env)
|
||||||
{
|
{
|
||||||
return lm32_juart_get_jrx(env->juart_state);
|
return lm32_juart_get_jrx(env->juart_state);
|
||||||
}
|
}
|
||||||
|
@ -324,10 +324,20 @@ static inline void gen_compare(DisasContext *dc, int cond)
|
|||||||
int rX = (dc->format == OP_FMT_RR) ? dc->r2 : dc->r1;
|
int rX = (dc->format == OP_FMT_RR) ? dc->r2 : dc->r1;
|
||||||
int rY = (dc->format == OP_FMT_RR) ? dc->r0 : dc->r0;
|
int rY = (dc->format == OP_FMT_RR) ? dc->r0 : dc->r0;
|
||||||
int rZ = (dc->format == OP_FMT_RR) ? dc->r1 : -1;
|
int rZ = (dc->format == OP_FMT_RR) ? dc->r1 : -1;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (dc->format == OP_FMT_RI) {
|
if (dc->format == OP_FMT_RI) {
|
||||||
tcg_gen_setcondi_tl(cond, cpu_R[rX], cpu_R[rY],
|
switch (cond) {
|
||||||
sign_extend(dc->imm16, 16));
|
case TCG_COND_GEU:
|
||||||
|
case TCG_COND_GTU:
|
||||||
|
i = zero_extend(dc->imm16, 16);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
i = sign_extend(dc->imm16, 16);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
tcg_gen_setcondi_tl(cond, cpu_R[rX], cpu_R[rY], i);
|
||||||
} else {
|
} else {
|
||||||
tcg_gen_setcond_tl(cond, cpu_R[rX], cpu_R[rY], cpu_R[rZ]);
|
tcg_gen_setcond_tl(cond, cpu_R[rX], cpu_R[rY], cpu_R[rZ]);
|
||||||
}
|
}
|
||||||
@ -373,7 +383,7 @@ static void dec_cmpgeu(DisasContext *dc)
|
|||||||
{
|
{
|
||||||
if (dc->format == OP_FMT_RI) {
|
if (dc->format == OP_FMT_RI) {
|
||||||
LOG_DIS("cmpgeui r%d, r%d, %d\n", dc->r0, dc->r1,
|
LOG_DIS("cmpgeui r%d, r%d, %d\n", dc->r0, dc->r1,
|
||||||
sign_extend(dc->imm16, 16));
|
zero_extend(dc->imm16, 16));
|
||||||
} else {
|
} else {
|
||||||
LOG_DIS("cmpgeu r%d, r%d, r%d\n", dc->r2, dc->r0, dc->r1);
|
LOG_DIS("cmpgeu r%d, r%d, r%d\n", dc->r2, dc->r0, dc->r1);
|
||||||
}
|
}
|
||||||
@ -385,7 +395,7 @@ static void dec_cmpgu(DisasContext *dc)
|
|||||||
{
|
{
|
||||||
if (dc->format == OP_FMT_RI) {
|
if (dc->format == OP_FMT_RI) {
|
||||||
LOG_DIS("cmpgui r%d, r%d, %d\n", dc->r0, dc->r1,
|
LOG_DIS("cmpgui r%d, r%d, %d\n", dc->r0, dc->r1,
|
||||||
sign_extend(dc->imm16, 16));
|
zero_extend(dc->imm16, 16));
|
||||||
} else {
|
} else {
|
||||||
LOG_DIS("cmpgu r%d, r%d, r%d\n", dc->r2, dc->r0, dc->r1);
|
LOG_DIS("cmpgu r%d, r%d, r%d\n", dc->r2, dc->r0, dc->r1);
|
||||||
}
|
}
|
||||||
@ -1027,11 +1037,6 @@ static void gen_intermediate_code_internal(CPULM32State *env,
|
|||||||
cpu_abort(env, "LM32: unaligned PC=%x\n", pc_start);
|
cpu_abort(env, "LM32: unaligned PC=%x\n", pc_start);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)) {
|
|
||||||
qemu_log("-----------------------------------------\n");
|
|
||||||
log_cpu_state(env, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
next_page_start = (pc_start & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE;
|
next_page_start = (pc_start & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE;
|
||||||
lj = -1;
|
lj = -1;
|
||||||
num_insns = 0;
|
num_insns = 0;
|
||||||
|
@ -52,4 +52,19 @@ mvi r3, 0
|
|||||||
cmpgei r3, r3, 0
|
cmpgei r3, r3, 0
|
||||||
check_r3 1
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGEI_11
|
||||||
|
mvi r1, 0
|
||||||
|
cmpgei r3, r1, -32768
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGEI_12
|
||||||
|
mvi r1, -1
|
||||||
|
cmpgei r3, r1, -32768
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGEI_13
|
||||||
|
mvi r1, -32768
|
||||||
|
cmpgei r3, r1, -32768
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -52,4 +52,19 @@ mvi r3, 0
|
|||||||
cmpgeui r3, r3, 0
|
cmpgeui r3, r3, 0
|
||||||
check_r3 1
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGEUI_11
|
||||||
|
mvi r1, 0
|
||||||
|
cmpgeui r3, r1, 0x8000
|
||||||
|
check_r3 0
|
||||||
|
|
||||||
|
test_name CMPGEUI_12
|
||||||
|
mvi r1, -1
|
||||||
|
cmpgeui r3, r1, 0x8000
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGEUI_13
|
||||||
|
ori r1, r0, 0x8000
|
||||||
|
cmpgeui r3, r1, 0x8000
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -52,4 +52,19 @@ mvi r3, 0
|
|||||||
cmpgi r3, r3, 0
|
cmpgi r3, r3, 0
|
||||||
check_r3 0
|
check_r3 0
|
||||||
|
|
||||||
|
test_name CMPGI_11
|
||||||
|
mvi r1, 0
|
||||||
|
cmpgi r3, r1, -32768
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGI_12
|
||||||
|
mvi r1, -1
|
||||||
|
cmpgi r3, r1, -32768
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGI_13
|
||||||
|
mvi r1, -32768
|
||||||
|
cmpgi r3, r1, -32768
|
||||||
|
check_r3 0
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -35,7 +35,7 @@ check_r3 1
|
|||||||
test_name CMPGUI_7
|
test_name CMPGUI_7
|
||||||
mvi r1, -1
|
mvi r1, -1
|
||||||
cmpgui r3, r1, 0xffff
|
cmpgui r3, r1, 0xffff
|
||||||
check_r3 0
|
check_r3 1
|
||||||
|
|
||||||
test_name CMPGUI_8
|
test_name CMPGUI_8
|
||||||
mvi r3, 0
|
mvi r3, 0
|
||||||
@ -52,4 +52,19 @@ mvi r3, 0
|
|||||||
cmpgui r3, r3, 0
|
cmpgui r3, r3, 0
|
||||||
check_r3 0
|
check_r3 0
|
||||||
|
|
||||||
|
test_name CMPGUI_11
|
||||||
|
mvi r1, 0
|
||||||
|
cmpgui r3, r1, 0x8000
|
||||||
|
check_r3 0
|
||||||
|
|
||||||
|
test_name CMPGUI_12
|
||||||
|
mvi r1, -1
|
||||||
|
cmpgui r3, r1, 0x8000
|
||||||
|
check_r3 1
|
||||||
|
|
||||||
|
test_name CMPGUI_13
|
||||||
|
ori r1, r0, 0x8000
|
||||||
|
cmpgui r3, r1, 0x8000
|
||||||
|
check_r3 0
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user