mirror of
https://github.com/Ed94/pikuma_ps1.git
synced 2026-08-04 06:38:48 +00:00
improving dsl.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
/* ============================================================================
|
||||
* duffle DSL — MIPS Vendor Mnemonics (opt-in)
|
||||
* ============================================================================
|
||||
*
|
||||
* Provides the textbook MIPS assembly mnemonics as thin aliases to the
|
||||
* canonical duffle macros in mips.h. The duffle names are primary; this
|
||||
* header is for users who prefer the textbook mnemonics.
|
||||
*
|
||||
* USAGE: #include "duffle/mips_vendor_sym.h" // after mips.h
|
||||
*
|
||||
* Mapping (vendor -> duffle):
|
||||
* Shift family:
|
||||
* sll -> shift_lleft (shift left logical)
|
||||
* srl -> shift_lright (shift right logical)
|
||||
* sra -> shift_aright (shift right arithmetic)
|
||||
* (no sllv/srlv/srav; the shift macros take a literal shamt)
|
||||
*
|
||||
* Jump family (1-arg / implicit-rd forms):
|
||||
* jr -> jump_reg (jump register)
|
||||
* j -> jump (jump to immediate address)
|
||||
* jal -> call_addr (jump-and-link to immediate address)
|
||||
* jalr -> call_reg (jump-and-link to register, default $ra)
|
||||
* (for the 2-arg `jalr rs, rd`, use `jump_link(rs, rd)` directly)
|
||||
*
|
||||
* The vendor mnemonics are NOT registered with the duffle word-count
|
||||
* metadata (tape_atom.metadata.h). They expand to the duffle canonical
|
||||
* macros which DO have word-count entries. Verification: V2 (objdump
|
||||
* byte-identical) holds.
|
||||
*
|
||||
* ============================================================================ */
|
||||
|
||||
#ifdef INTELLISENSE_DIRECTIVES
|
||||
# pragma once
|
||||
# include "mips.h"
|
||||
#endif
|
||||
|
||||
#ifndef DUFFLE_MIPS_VENDOR_SYM_H
|
||||
#define DUFFLE_MIPS_VENDOR_SYM_H
|
||||
|
||||
/* Shift family */
|
||||
#define sll shift_lleft
|
||||
#define srl shift_lright
|
||||
#define sra shift_aright
|
||||
|
||||
/* Jump family (1-arg / implicit-$ra forms) */
|
||||
#define jr jump_reg
|
||||
#define j jump
|
||||
#define jal call_addr
|
||||
#define jalr call_reg
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user