jvm/c/native/sh4intrinsic.c
2025-01-20 19:53:23 -06:00

30 lines
786 B
C

#include "sh4intrinsic.h"
void native_jvm_internal_sh4intrinsic_pref1_1(struct vm * vm, uint32_t * args)
{
uint32_t address = (uint32_t)args[0];
// start 32-byte transfer from store queue 0 (SQ0) to QACR0
asm volatile ("pref @%0"
: // output
: "r" (address) // input
: "memory");
}
void native_jvm_internal_sh4intrinsic_pref2_1(struct vm * vm, uint32_t * args)
{
uint32_t address = (uint32_t)args[0];
// start 32-byte transfer from store queue 0 (SQ0) to QACR0
asm volatile ("pref @%0"
: // output
: "r" (address) // input
: "memory");
// start 32-byte transfer from store queue 1 (SQ1) to QACR1
asm volatile ("pref @%0"
: // output
: "r" (address + 32) // input
: "memory");
}