@@ -835,7 +835,7 @@ enum operand_size { int8, int16, int32, uint32, int64 };
835
835
836
836
// Immediate Instruction
837
837
#define INSN (NAME, op, funct3 ) \
838
- void NAME (Register Rd, Register Rs1, int32_t imm) { \
838
+ void NAME (Register Rd, Register Rs1, int64_t imm) { \
839
839
guarantee (is_simm12 (imm), " Immediate is out of validity" ); \
840
840
unsigned insn = 0 ; \
841
841
patch ((address)&insn, 6 , 0 , op); \
@@ -846,17 +846,17 @@ enum operand_size { int8, int16, int32, uint32, int64 };
846
846
emit (insn); \
847
847
}
848
848
849
- INSN (_addi, 0b0010011 , 0b000 );
850
- INSN (slti, 0b0010011 , 0b010 );
851
- INSN (_addiw , 0b0011011 , 0b000 );
852
- INSN (_and_imm12, 0b0010011 , 0b111 );
853
- INSN (ori , 0b0010011 , 0b110 );
854
- INSN (xori , 0b0010011 , 0b100 );
849
+ INSN (_addi, 0b0010011 , 0b000 );
850
+ INSN (_addiw, 0b0011011 , 0b000 );
851
+ INSN (_andi , 0b0010011 , 0b111 );
852
+ INSN (ori, 0b0010011 , 0b110 );
853
+ INSN (xori , 0b0010011 , 0b100 );
854
+ INSN (slti , 0b0010011 , 0b010 );
855
855
856
856
#undef INSN
857
857
858
858
#define INSN (NAME, op, funct3 ) \
859
- void NAME (Register Rd, Register Rs1, uint32_t imm) { \
859
+ void NAME (Register Rd, Register Rs1, uint64_t imm) { \
860
860
guarantee (is_uimm12 (imm), " Immediate is out of validity" ); \
861
861
unsigned insn = 0 ; \
862
862
patch ((address)&insn,6 , 0 , op); \
@@ -2230,7 +2230,7 @@ enum Nf {
2230
2230
}
2231
2231
2232
2232
#define INSN (NAME, funct3, op ) \
2233
- void NAME (Register Rd_Rs1, int32_t imm) { \
2233
+ void NAME (Register Rd_Rs1, int64_t imm) { \
2234
2234
assert_cond (is_simm6 (imm)); \
2235
2235
uint16_t insn = 0 ; \
2236
2236
c_patch ((address)&insn, 1 , 0 , op); \
@@ -2247,7 +2247,7 @@ enum Nf {
2247
2247
#undef INSN
2248
2248
2249
2249
#define INSN (NAME, funct3, op ) \
2250
- void NAME (int32_t imm) { \
2250
+ void NAME (int64_t imm) { \
2251
2251
assert_cond (is_simm10 (imm)); \
2252
2252
assert_cond ((imm & 0b1111 ) == 0 ); \
2253
2253
assert_cond (imm != 0 ); \
@@ -2268,7 +2268,7 @@ enum Nf {
2268
2268
#undef INSN
2269
2269
2270
2270
#define INSN (NAME, funct3, op ) \
2271
- void NAME (Register Rd, uint32_t uimm) { \
2271
+ void NAME (Register Rd, uint64_t uimm) { \
2272
2272
assert_cond (is_uimm10 (uimm)); \
2273
2273
assert_cond ((uimm & 0b11 ) == 0 ); \
2274
2274
assert_cond (uimm != 0 ); \
@@ -2325,7 +2325,7 @@ enum Nf {
2325
2325
#undef INSN
2326
2326
2327
2327
#define INSN (NAME, funct3, funct2, op ) \
2328
- void NAME (Register Rd_Rs1, int32_t imm) { \
2328
+ void NAME (Register Rd_Rs1, int64_t imm) { \
2329
2329
assert_cond (is_simm6 (imm)); \
2330
2330
uint16_t insn = 0 ; \
2331
2331
c_patch ((address)&insn, 1 , 0 , op); \
@@ -2950,7 +2950,7 @@ enum Nf {
2950
2950
// Immediate Instructions
2951
2951
// --------------------------
2952
2952
#define INSN (NAME ) \
2953
- void NAME (Register Rd, Register Rs1, int32_t imm) { \
2953
+ void NAME (Register Rd, Register Rs1, int64_t imm) { \
2954
2954
/* addi -> c.addi/c.nop/c.mv/c.addi16sp/c.addi4spn */ \
2955
2955
if (do_compress ()) { \
2956
2956
if (Rd == Rs1 && is_simm6 (imm)) { \
@@ -2978,7 +2978,7 @@ enum Nf {
2978
2978
2979
2979
// --------------------------
2980
2980
#define INSN (NAME ) \
2981
- void NAME (Register Rd, Register Rs1, int32_t imm) { \
2981
+ void NAME (Register Rd, Register Rs1, int64_t imm) { \
2982
2982
/* addiw -> c.addiw */ \
2983
2983
if (do_compress () && (Rd == Rs1 && Rd != x0 && is_simm6 (imm))) { \
2984
2984
c_addiw (Rd, imm); \
@@ -2993,17 +2993,17 @@ enum Nf {
2993
2993
2994
2994
// --------------------------
2995
2995
#define INSN (NAME ) \
2996
- void NAME (Register Rd, Register Rs1, int32_t imm) { \
2997
- /* and_imm12 -> c.andi */ \
2996
+ void NAME (Register Rd, Register Rs1, int64_t imm) { \
2997
+ /* andi -> c.andi */ \
2998
2998
if (do_compress () && \
2999
2999
(Rd == Rs1 && Rd->is_compressed_valid () && is_simm6 (imm))) { \
3000
3000
c_andi (Rd, imm); \
3001
3001
return ; \
3002
3002
} \
3003
- _and_imm12 (Rd, Rs1, imm); \
3003
+ _andi (Rd, Rs1, imm); \
3004
3004
}
3005
3005
3006
- INSN (and_imm12 );
3006
+ INSN (andi );
3007
3007
3008
3008
#undef INSN
3009
3009
0 commit comments