mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-31 17:30:24 +02:00
Add breakpoint instruction
This commit is contained in:
parent
23bfbbaac1
commit
84b9ef087b
4 changed files with 34 additions and 0 deletions
|
@ -600,6 +600,8 @@ jit_load_args_3(jit_state_t *_jit, jit_operand_t a, jit_operand_t b,
|
|||
M(_F___, retval_f) \
|
||||
M(_F___, retval_d) \
|
||||
\
|
||||
M(_____, breakpoint) \
|
||||
\
|
||||
M(_FF__, negr_f) \
|
||||
M(_FF__, negr_d) \
|
||||
M(_FF__, absr_f) \
|
||||
|
|
|
@ -273,6 +273,7 @@ oxxrs(jit_state_t *_jit, int32_t Op,
|
|||
#define A64_MOVN 0x12800000
|
||||
#define A64_MOVZ 0x52800000
|
||||
#define A64_MOVK 0x72800000
|
||||
#define A64_BRK 0xd4200000
|
||||
|
||||
static void
|
||||
SBFM(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t ImmR, int32_t ImmS)
|
||||
|
@ -926,6 +927,12 @@ NOP(jit_state_t *_jit)
|
|||
return emit_u32_with_pool(_jit, 0xd503201f);
|
||||
}
|
||||
|
||||
static void
|
||||
BRK(jit_state_t *_jit)
|
||||
{
|
||||
emit_u32_with_pool(_jit, A64_BRK);
|
||||
}
|
||||
|
||||
static jit_reloc_t
|
||||
movi_from_pool(jit_state_t *_jit, int32_t Rt)
|
||||
{
|
||||
|
@ -2540,3 +2547,9 @@ cas_atomic(jit_state_t *_jit, int32_t dst, int32_t loc, int32_t expected,
|
|||
movr(_jit, dst, dst_or_tmp);
|
||||
unget_temp_gpr(_jit);
|
||||
}
|
||||
|
||||
static void
|
||||
breakpoint(jit_state_t *_jit)
|
||||
{
|
||||
BRK(_jit);
|
||||
}
|
||||
|
|
|
@ -182,6 +182,7 @@
|
|||
#define THUMB_DMB 0xf3bf8f50
|
||||
#define THUMB_LDREX 0xe8500f00
|
||||
#define THUMB_STREX 0xe8400000
|
||||
#define THUMB_BRK 0xbe00
|
||||
|
||||
#define _NOREG (jit_gpr_regno(_PC))
|
||||
|
||||
|
@ -1341,6 +1342,12 @@ T2_STRIN(jit_state_t *_jit, int32_t rt, int32_t rn, int32_t im)
|
|||
return torri8(_jit, THUMB2_STRI,rn,rt,im);
|
||||
}
|
||||
|
||||
static void
|
||||
T1_BRK(jit_state_t *_jit)
|
||||
{
|
||||
emit_u16_with_pool(_jit, THUMB_BRK);
|
||||
}
|
||||
|
||||
static void
|
||||
nop(jit_state_t *_jit, int32_t i0)
|
||||
{
|
||||
|
@ -3053,3 +3060,9 @@ cas_atomic(jit_state_t *_jit, int32_t dst, int32_t loc, int32_t expected,
|
|||
movr(_jit, dst, dst_or_tmp);
|
||||
unget_temp_gpr(_jit);
|
||||
}
|
||||
|
||||
static void
|
||||
breakpoint(jit_state_t *_jit)
|
||||
{
|
||||
T1_BRK(_jit);
|
||||
}
|
||||
|
|
|
@ -2753,3 +2753,9 @@ cas_atomic(jit_state_t *_jit, int32_t dst, int32_t loc, int32_t expected,
|
|||
unget_temp_gpr(_jit);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
breakpoint(jit_state_t *_jit)
|
||||
{
|
||||
ic(_jit, 0xcc);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue