|
@@ -172,6 +172,15 @@ void jit_ldrb(int reg) {
|
|
|
code[code_idx++] = op;
|
|
|
}
|
|
|
|
|
|
+// 8 bit only from rdx! (R3)
|
|
|
+void jit_ldrs(int reg) {
|
|
|
+ uint32_t op = 0xe1d000b0; // ldrh
|
|
|
+ op |= 1<<22; // byte access
|
|
|
+ op |= (reg<<16); // r3
|
|
|
+ op |= (3<<12); // dreg
|
|
|
+ code[code_idx++] = op;
|
|
|
+}
|
|
|
+
|
|
|
// 8 bit only from rdx! (R3)
|
|
|
void jit_strb(int reg) {
|
|
|
uint32_t op = 0xe5800000;
|
|
@@ -181,6 +190,15 @@ void jit_strb(int reg) {
|
|
|
code[code_idx++] = op;
|
|
|
}
|
|
|
|
|
|
+// 16 bit only from rdx! (R3)
|
|
|
+void jit_strs(int reg) {
|
|
|
+ uint32_t op = 0xe1c000b0; // strh
|
|
|
+ op |= 1<<22; // byte access
|
|
|
+ op |= (reg<<16); // r3
|
|
|
+ op |= (3<<12); // dreg
|
|
|
+ code[code_idx++] = op;
|
|
|
+}
|
|
|
+
|
|
|
// 32 bit only from rdx!
|
|
|
void jit_strw(int reg) {
|
|
|
uint32_t op = 0xe5800000;
|